Skip to content

chrooting

e1z0 edited this page Jul 6, 2023 · 4 revisions

Chrooting into existing Installation and installing additional software

Mounting

Mount your CF card's second partition ext4 usually /dev/sdc2 to /mnt/cf2

mount /dev/sdc2 /mnt/cf2

Preparing your desktop linux

For your Linux OS you have to install additional software that emulates ARMv4 CPU architecture

apt-get install qemu-user-static
cp $(which qemu-arm-static) /mnt/cf2/usr/bin

Chrooting

chroot /mnt qemu-arm-static /bin/bash

Then in chroot environment you can install any software and manage your jornada linux OS from your desktop as you where in real Jornada.

First thing you should fix is to update your repository information (for Devuan), open /etc/apt/sources.list nano /etc/apt/sources.list and replace all lines with these:

deb http://archive.devuan.org/merged ascii          main
deb http://archive.devuan.org/merged ascii-security main

Save it and run:

apt-get update

Now you can install any software with standard debian utils apt-get install mc or apt install mc

Installing jornada-config (for Devuan)

Jornada 7xx Devuan-Linux configuration scripts and localized keyboard / button handler services.

Copy jornada-config to /mnt/cf2/opt/jornada-config

cp -r jornada-config /mnt/cf2/opt/jornada-config

When in chroot run:

apt-get install whiptail kbd pcmciautils busybox build-essential manpages-dev libevdev-dev rcconf
cp -f /opt/jornada-config/scripts/inittab.noauto /etc/inittab
/opt/jornada-config/jornada-config --install

When on device you can run: /opt/jornada-config/jornada-config

image

You can set localization options (language, timezone and keyboard), then continue with creating a new user for regular work (it will get sudo access) and setup the WiFi.

note: locale and timezone take quite some time due to background package configuration, the machine is not stuck!

When you finish, select the option to disable the config program after next reboot, otherwise it will show up on each login.

The program has a user mode too which exposes functions to turn on / off the WiFi, connect to different networks, configure startup behavior (automatic console login, automatic X11 startup) and a bit more.

image

It does not run automatically, to call it use: jconf (this is an alias to sudo /opt/jornada-config/jornada-config).

(Optional) Install the button handler

Included is a background program which runs as a services and listens for certain keystrokes (Power, Mute, Vol+, Vol-). For each of these keystrokes, actions can be configured by placing a shell script with a certain name in the /etc folder:

  • j720b_power.sh -- Runs when the power key is pressed
  • 720b_mute.sh -- Runs when the mute button is pressed
  • j720_volup.sh -- Runs when the volume + button is pressed
  • j720b_voldn.sh -- you guess it, right?

The program along with configuration examples is in the /opt/jornada-config/buttons folder. You can install it by running: ./install.sh in that folder. The script will compile the .c file, move the binary to /usr/bin/jbuttons and create an init.d/j720-buttons.sh init script. Also it will setup the Vol- button to "Sleep" the jornada (power off the Wifi Card and the display) and Vol+ to "unsleep"

Note: This program is not 100% tested yet and it still has the issue of spewing log output to the console and passing through the keys as keystrokes (i.e. tildes on the commandline).

Compiling kernel

There are some problems with the default kernel, like cisco aironet 350 pcmcia wireless card is not supported, you can use precompiled kernels in kernels/linux-3.16.81-binaries with name prefix zImage_bX they are the experimental releases for Jornada with various support.

But you can build it by yourself! There is how. Copy kernel sources from kernels/linux-3.16.81 to /mnt/cf2/usr/src/linux (kernel config is already prepared for Jornada 720)

cp -r kernels/linux-3.16.81 /mnt/cf2/usr/src/linux

When in chroot environment you have to run:

cd /usr/src/linux
make zImage&&make modules&&make modules_install

Then out of chroot you have to copy compiled kernel to the cf1 partition

cp /mnt/cf2/usr/src/linux/arch/arm/boot/zImage /mnt/cf1/