Ir al contenido principal

When “Pre-Installed OpenWrt” Isn’t Plug-and-Play

  Lessons Learned After Finally Configuring a Raspberry Pi CM4 Mini Router (Bought in 2022) Product Mini Router built with Raspberry Pi Compute Module 4 Dual Gigabit Ethernet NICs 4GB RAM / 32GB eMMC Pre-installed OpenWrt Compact form factor, fanless, low power Background: A Device That Waited Its Turn I bought this device back in 2022 . At the time, it looked like the perfect small router: Raspberry Pi Compute Module 4 Dual Ethernet ports OpenWrt already installed No SD card required thanks to eMMC But like many homelab projects, it ended up sitting on a shelf . Fast forward to today — with more networking experience, a clearer home network plan, and a real need for a flexible router — I finally decided to configure it properly. That’s when the real journey started. What I Expected (Even in 2025) Even knowing this wasn’t a consumer router, I still expected: Plug WAN into my upstream router Plug LAN into my laptop Access 192.168.1.1 Hav...

Instalando Pintos


Posiblemente saben que la documentación esta en la
pagina web de pintos.
Pero tenemos dudas, al momento que seguimos la instrucciones. Este tutorial esta basado en Ubuntu 10.04, en mi opinión personal no importa la versión de Ubuntu, o cualquier distribución basada en debian debería de funcionar. Si lo prueban me avisan.
.
Paso 1. Vamos a instalar unas cosas, para eso vamos a usar la terminal y escribimos los siguientes comandos
  • sudo apt-get install xserver-xorg-dev xorg-dev
  • sudo apt-get install wx-common wx2.8-headers libwxbase2.8-0 libwxgtk2.8-dev
  • sudo apt-get install libncurses5-dev
Paso 2. Abrirl el gestor de paquetes synaptic

Paso 3.
En la casilla de buscar, escribimos las siguientes librerias, y le damos instalar a cada una de ellas.
  • gcc
  • build-essential
  • perl
  • gdb
  • qemu
  • patch
  • libsocket



Picasa SlideshowPicasa Web AlbumsFullscreen

Paso 4. IMPORTANTE Hya un problema al momento cuando instalamos libsocket. Tenemos que hacer un linkeo. ¿Porque? Pintos la busca en otro lugar, y nuestro sistema la puso en otro. Entonces en la terminal escribimos el siguiente codigo
  • sudo ln -s /usr/lib/libsocket.so.0 /usr/lib/libsocket.so
  • Para verificar si esta bueno, escribimos en la terminal ls -lh /usr/lib/libsocket*









Paso 5. Descargamos el bochs version 2.2.6. Aqui.
Descargamos el pintos. AQUI Lo descomprimos.
Lo descromprimos. En la terminal nos movemos a la carpeta donde lo tenemos instalado y vamos a parchear el pintos.
  • cd /directorio/bochs-2.2.6
  • IMPORTANTE PINTOSDIR es la direccion donde descomprimos el pintos, no lo vayan a pegar, tienen que poner la direccion de la carpeta pintos.
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-big-endian.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-jitter.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-triple-fault.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-ms-extensions.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-tty.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-page-fault-segv.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-paranoia.patch
  • patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-link.patch
Ahora la instalacion de bochs
En la carpeta de bochs escribimos el siguiente comando
  • ./configure --enable-gdb-stub --with-x --with-x11 --with-therm --with-nogui
  • make
  • sudo make install
Y el bochs esta listo.

Paso 6. Y ahora seguimos con el pintos
  • Entramos a la carpeta donde tenemos pintos. y hacemos un cd
    cd /directorio/pintos/src/utils
  • make
  • sudo cp backtrace /usr/bin
  • sudo cp pintos /usr/bin
  • sudo cp pintos-gdb /usr/bin
  • sudo cp pintos-mkdisk /usr/bin
  • sudo cp pintos-set-cmdline /usr/bin
  • sudo cp squish-pty /usr/bin
  • sudo cp squish-unix /usr/bin
  • sudo cp Pintos.pm /usr/bin
  • sudo chmod +rx /usr/bin/pintos
Con esto deberia de estar listo. Probarlo?
Le damos un cd a la carpeta de pintos
  • cd /directoriopintos/threads
  • make
  • esto nos crea una carpeta build.
  • cd build
  • y corremos el siguiente ejemplo
    pintos run alarm-multiple
  • Esto nos deberia de mostrar una imagen como la siguiente











Comentarios

Comentarios

Entradas populares de este blog

Modern Architecture for Native Apps with AWS Backend: A Practical Guide

Introduction Designing a mobile app today goes far beyond building a beautiful interface. Native apps — whether for iOS or Android — need secure authentication, user role management, real-time communication with the backend, and scalable infrastructure to support growth. In this post, I’ll walk you through a clean and modern architecture to connect native mobile apps to a robust backend on AWS. The architecture is modular, scalable, and aligned with best practices for security and performance — without relying on overly complex tools. Why it matters: apps today are more than just UI A production-grade mobile app often includes: User login (email, Google, or others), Differentiated access for multiple roles (e.g., user vs admin), Secure token-based communication, A backend capable of handling business logic and data, Data storage, asset management, and scalable APIs, Compliance with Google Play and App Store requirements. All of these require a backend architecture ...

How I miss you Synaptic!

Several years  have passed since we saw the Synaptic included in Ubuntu. You can found reasons here  . So in a clear english the reason was to have a better add/remove program for users. A friendly application. The explanation sounds good, I didn't complain about that, until right now. Ubuntu has change a lot, it's really a friendly user OS. I have use CLI when necessary, but today I couldn't believe it. I'm a Google Chrome user, I know you will tell me it's not open source or I should use Chromium or FF. But no. I'm a user of Google Chrome, and many people also prefer Chrome over Chromium, so why it should be quite complex remove it? If Ubuntu wants to be more friendly user why you should use the terminal for removing one of the most popular web browsers? I could understand if is a browser few people use, a good reason. But not a popular browser, Chrome is one of the most popular browsers on the world! A screen shot of the Ubuntu Software Center, trying t...

Understanding Liveness, Readiness and Startup Probes in Kubernetes

 This is a small article about understanding the liveness, readiness and startup in kubernetes.  There's good explanation in the kubernetes documentation: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ This video also explains well the process: https://www.youtube.com/watch?v=aTlQBofihJQ But I wanted to understand it in a practical way. So I have this demo: https://github.com/DiegoTc/guest-book-js-docker/tree/Running-App-Version-1 It's a simple application running on a kubernetes cluster. https://github.com/DiegoTc/guest-book-js-docker/blob/Running-App-Version-1/argo/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: chat-ui spec: replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: app: chat-ui template: metadata: labels: app: chat-ui spec: containers: - image: diegotc/guestbook:20230803-064434 imagePullPolicy: Alwa...