*** ALPINE 3.18 INSTALL ON KOBO CLARA HD (4.35.20400) ***
I. INSTALL KOREADER
https://www.mobileread.com/forums/sh...d.php?t=314220
II. DOWNLOAD PREREQUISITES
From your desktop, download alpine-minirootfs-3.18.0-armv7.tar.gz, fbink-xdamage.zip, libinput-touchscreen.zip, and xorg-kobo-touch.py.
$ wget
https://dl-cdn.alpinelinux.org/alpin...0-armv7.tar.gz
$ git clone --recurse-submodules
https://github.com/tux-linux/fbink-xdamage.git
$ cd fbink-xdamage/
$ sudo rm -R .git
$ tar zcvf fbink-xdamage.tgz fbink-xdamage/
$ wget
https://github.com/xiamaz/libinput-t...ads/master.zip
$ mv master.zip libinput-touchscreen.zip
You can download NiMa's original instructions and xorg-kobo-touch.py from mobileread.com:
https://www.mobileread.com/forums/sh...d.php?t=336175
https://www.mobileread.com/forums/sh....php?p=4077882
Create a /mnt/onboard/shared/ folder on the Kobo and copy the above files to there.
III. CREATE/EDIT SUPPORT FILES ON KOBO
EDIT /mnt/onboard/.kobo/Kobo/Kobo eReader.conf (optional):
Code:
[ApplicationPreferences]
AIRPLANE_MODE=false
SideloadedMode=true
EDIT /mnt/onboard/.adds/nm/config.txt:
Code:
menu_item :main :USB Networking on :cmd_spawn :quiet:exec /mnt/onboard/opt/usbtoeth
chain_success :dbg_toast :Started USB networking
chain_failure :dbg_toast :Error
menu_item :main :USB Networking off :cmd_spawn :quiet:exec /mnt/onboard/opt/usbtoethd
chain_success :dbg_toast :Stopped USB networking
chain_failure :dbg_toast :Error
menu_item :main :IP Address :cmd_output :500:/sbin/ifconfig | /usr/bin/awk '/inet addr/{print substr($2,6)}'
menu_item :main :Dropbear (toggle) :cmd_output :500:quiet :/usr/bin/pkill -f "dropbear"
chain_success:skip:5
chain_failure :cmd_spawn :quiet :/bin/mount -t devpts | /bin/grep -q /dev/pts || { /bin/mkdir -p /dev/pts && /bin/mount -t devpts devpts /dev/pts; }
chain_success :cmd_spawn :quiet :export HOME="/mnt/onboard/.adds/koreader/" && cd "$HOME" && /mnt/onboard/.adds/koreader/scripts/dropbear -E -R -p2222 >/mnt/onboard/.adds/koreader/DropbearLog.txt 2>&1
chain_success :dbg_toast :Started Dropbear server on port 2222
chain_failure :dbg_toast :Error starting Dropbear server on port 2222
chain_always:skip:-1
chain_success :dbg_toast :Stopped Dropbox server on port 2222
menu_item : main: Dropbear Log :nickel_browser : modal :file:///mnt/onboard/.adds/koreader/DropbearLog.txt
menu_item : main : Orientation - LANDSCAPE - handle above : nickel_orientation: landscape
menu_item : main : Orientation - LANDSCAPE - handle below : nickel_orientation: inverted_landscape
menu_item : main : Orientation - PORTRAIT - handle on left : nickel_orientation: inverted_portrait
menu_item : main : Orientation - PORTRAIT - handle on right : nickel_orientation: portrait
menu_item :main :HOST USB :cmd_spawn :quiet :sh /mnt/onboard/opt/otgon.sh
chain_success :dbg_toast :HOST USB
chain_failure :dbg_toast :Error
menu_item :main :GADGET USB :cmd_spawn :quiet :/bin/echo gadget > /sys/kernel/debug/ci_hdrc.0/role
chain_success :dbg_toast :GADGET USB
chain_failure :dbg_toast :Error
menu_item :main :USB role :cmd_output :500:/bin/cat /sys/kernel/debug/ci_hdrc.0/role
menu_item :main :User Xorg :cmd_spawn :quiet:exec /mnt/onboard/opt/uxorg-boot.sh
chain_success :dbg_toast :Started Xorg as non-root user
chain_failure :dbg_toast :Error
menu_item :main :Xorg :cmd_spawn :quiet:exec /mnt/onboard/opt/xorg-boot.sh
chain_success :dbg_toast :Started Xorg
chain_failure :dbg_toast :Error
CREATE /mnt/onboard/opt/usbtoeth:
Code:
#!/bin/sh
insmod /drivers/mx6sll-ntx/usb/gadget/configfs.ko
insmod /drivers/mx6sll-ntx/usb/gadget/libcomposite.ko
insmod /drivers/mx6sll-ntx/usb/gadget/u_ether.ko
insmod /drivers/mx6sll-ntx/usb/gadget/usb_f_ecm.ko
insmod /drivers/mx6sll-ntx/usb/gadget/usb_f_eem.ko
insmod /drivers/mx6sll-ntx/usb/gadget/usb_f_ecm_subset.ko
insmod /drivers/mx6sll-ntx/usb/gadget/usb_f_rndis.ko
insmod /drivers/mx6sll-ntx/usb/gadget/g_ether.ko
ifconfig usb0 192.168.2.2
CREATE /mnt/onboard/opt/usbtoethd:
Code:
#!/bin/sh
ifconfig usb0 down
rmmod g_ether usb_f_rndis usb_f_ecm_subset usb_f_eem usb_f_ecm u_ether libcomposite configfs
CREATE /mnt/onboard/opt/otgon.sh:
Code:
#!/bin/bash
mount -t debugfs none /sys/kernel/debug
echo host > /sys/kernel/debug/ci_hdrc.0/role
CREATE /mnt/onboard/opt/uxorg-boot.sh:
Code:
#!/bin/sh
mount /mnt/onboard/alpine.img /mnt/user
mount -v --bind /mnt/onboard/shared /mnt/user/shared
mount -v --bind /dev /mnt/user/dev
mount -v --bind /dev/pts /mnt/user/dev/pts
mount -vt proc proc /mnt/user/proc
mount -vt sysfs sysfs /mnt/user/sys
mount -vt tmpfs tmpfs /mnt/user/run
mount -vt tmpfs tmpfs /mnt/user/tmp
mkdir /mnt/user/dev/shm
mount -vt tmpfs tmpfs /mnt/user/dev/shm
cp /etc/resolv.conf /mnt/user/etc
export DBUS_SESSION_BUS_ADDRESS NICKEL_HOME WIFI_MODULE LANG WIFI_MODULE_PATH INTERFACE
sync
killall -TERM nickel hindenburg sickel fickel fmon 2>/dev/null
chroot /mnt/user /bin/sh /uxorg-chroot.sh
CREATE /mnt/onboard/opt/xorg-boot.sh:
Code:
#!/bin/sh
mount /mnt/onboard/alpine.img /mnt/user
mount -v --bind /mnt/onboard/shared /mnt/user/shared
mount -v --bind /dev /mnt/user/dev
mount -v --bind /dev/pts /mnt/user/dev/pts
mount -vt proc proc /mnt/user/proc
mount -vt sysfs sysfs /mnt/user/sys
mount -vt tmpfs tmpfs /mnt/user/run
mount -vt tmpfs tmpfs /mnt/user/tmp
mkdir /mnt/user/dev/shm
mount -vt tmpfs tmpfs /mnt/user/dev/shm
cp /etc/resolv.conf /mnt/user/etc
export DBUS_SESSION_BUS_ADDRESS NICKEL_HOME WIFI_MODULE LANG WIFI_MODULE_PATH INTERFACE
sync
killall -TERM nickel hindenburg sickel fickel fmon 2>/dev/null
chroot /mnt/user /bin/sh /xorg-chroot.sh
CREATE /korenv.sh:
Code:
#!/bin/sh
export PATH=$PATH:/mnt/onboard/.adds/koreader/scripts:/mnt/onboard/.adds/koreader/plugins/terminal.koplugin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/onboard/.adds/koreader/libs
export TERM=xterm
export HOME=/mnt/onboard/.adds/koreader/
cd $HOME
CREATE /mnt/onboard/.adds/koreader/scripts/chalpine.sh:
Code:
#!/bin/sh
mount /mnt/onboard/alpine.img /mnt/user
mount -v --bind /mnt/onboard/shared /mnt/user/shared
mount -v --bind /dev /mnt/user/dev
mount -vt proc proc /mnt/user/proc
mount -vt sysfs sysfs /mnt/user/sys
cp /etc/resolv.conf /mnt/user/etc
chroot /mnt/user/ /bin/sh
CREATE /mnt/onboard/.adds/koreader/scripts/chalpined.sh:
Code:
#!/bin/sh
umount /mnt/user/dev
umount /mnt/user/proc
umount /mnt/user/sys
umount /mnt/user/shared
umount /mnt/user
IV. SET UP TELNET/SSH CONNECTION FROM DESKTOP TO KOBO
You can use Telnet (need devmodeon for this) or SSH, by WiFi or over USB cable.
See NiMa's original instructions if unsure.
To connect desktop to Kobo by SSH over the USB cable, first start KOReader's SSH server.
You can also
start the KOReader SSH server via NickelMenu.
V. CREATE CHROOT
Connect to your Kobo from your desktop by ssh or telnet:
e.g.
$ ssh root@192.168.2.2 -p 2222
OR
$ telnet <IP>
WHERE <IP> is the Kobo's IP address as given by "IP Address" entry in NickelMenu.
From desktop SSH session to Kobo, first back up the old alpine.img (if applicable):
# cd /mnt/onboard
# mv alpine.img alpineBKUP.img
Now create/edit 2GB disk image file (takes about 1min):
# dd if=/dev/zero of=/mnt/onboard/alpine.img bs=1M count=2048
Format the disk image:
# mke2fs -F /mnt/onboard/alpine.img
Mount the disk image:
# mount /mnt/onboard/alpine.img /mnt/user
Copy the Alpine Linux 3.18 root file system archive to the mounted disk image:
# cp shared/alpine-minirootfs-3.18.0-armv7.tar.gz /mnt/user/
Extract the root file system:
# cd /mnt/user
# tar zxvf alpine-minirootfs-3.18.0-armv7.tar.gz
# mkdir shared
# rm alpine-minirootfs-3.18.0-armv7.tar.gz
# cd /mnt/onboard
Switch to KOReader HOME and PATH environment:
# . /korenv.sh
Chroot to the new root file system:
# chalpine.sh
Connect your Kobo to WiFi (if not already connected) and and leave the WiFi menu open at the top of the screen.
Update the packages list:
# apk update
Install essential files (takes about 1min, 450MB):
# apk add alpine-sdk xorg-server-dev libx11-dev libxdamage-dev libxfixes-dev xorg-server xf86-video-dummy xvfb font-noto openbox xterm onboard xdotool tint2 python3 evtest xf86-video-fbdev
Build fbink-xdamage (takes about 5min):
# mkdir /home/root && cd /home/root
# cp /shared/fbink-xdamage.tgz .
# tar zxvf fbink-xdamage.tgz
# cd fbink-xdamage/
# make
Build libinput-touchscreen:
# cd /home/root/
# apk add eudev eudev-hwids xf86-input-libinput libinput-tools xinput libinput-dev eudev-dev
# cp /shared/libinput-touchscreen.zip .
# unzip libinput-touchscreen.zip
# cd libinput-touchscreen-master/
# make
Copy xorg-kobo-touch.py:
# cd /home/root/
# cp /shared/xorg-kobo-touch.py /home
VI. CREATE USER AND INSTALL PACKAGES
# adduser myuser
# echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing/" >> /etc/apk/repositories
# apk update
# apk add sudo bash tzdata xmessage nano mc lynx elinks xvkbd svkbd qterminal qpdfview netsurf featherpad tigervnc-client x11vnc openssh-server pcmanfm drawing lxterminal w3m w3m-image
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/loop2 2.0G 730.3M 1.2G 38% /
VII. CREATE/EDIT CONFIG FILES IN CHROOT
Create/edit the following files in /:
CREATE /uxorg-chroot.sh:
Code:
#!/bin/sh
export HOME=/home/root
mkdir /tmp/root
udevd -d
sleep 2
udevadm trigger
sleep 2
X -dpi 250 &
cd /home/root/fbink-xdamage
sleep 3
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/fbink-xdamage/FBInk/Release/; env DISPLAY=:0 ./fbink_xdamage &
sleep 3
cd /home/myuser
DISPLAY=:0 /usr/local/bin/libinput-touchscreen &
#evtest --grab /dev/input/event1 > evtest-log &
#sleep 1
#while true; do python3 /home/xorg-kobo-touch.py ; done &
#sleep 1
echo 20 > /sys/class/backlight/mxc_msp430.0/brightness
DISPLAY=:0 sudo -u myuser openbox &
DISPLAY=:0 sudo -u myuser tint2 &
DISPLAY=:0 qterminal --geometry 1400x620+20+60 &
# ***NOTE qterminal runs as root to get around terminal bug***
DISPLAY=:0 sudo -u myuser netsurf --window_width 1400 --window_height 620 --window_x 20 --window_y 60 --font_size 192 --scale 150 &
DISPLAY=:0 sudo -u myuser svkbd-mobile-intl -g 1400x320+20+700 &
#DISPLAY=:0 sudo -u myuser onboard -y 750 --size 1000x300 &
#DISPLAY=:0 sudo -u myuser featherpad --geometry 1400x620+20+60 &
#DISPLAY=:0 sudo -u myuser vncviewer -geometry 1400x960+20+60 192.168.43.9 &
#/usr/sbin/sshd &
CREATE /xorg-chroot.sh:
Code:
#!/bin/sh
export HOME=/home/root
mkdir /tmp/root
udevd -d
sleep 2
udevadm trigger
sleep 2
X -dpi 250 &
cd /home/root/fbink-xdamage
sleep 3
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/fbink-xdamage/FBInk/Release/; env DISPLAY=:0 ./fbink_xdamage &
sleep 3
cd /home/root
DISPLAY=:0 /usr/local/bin/libinput-touchscreen &
#evtest --grab /dev/input/event1 > evtest-log &
#sleep 1
#while true; do python3 /home/xorg-kobo-touch.py ; done &
#sleep 1
echo 20 > /sys/class/backlight/mxc_msp430.0/brightness
DISPLAY=:0 openbox &
DISPLAY=:0 tint2 &
DISPLAY=:0 qterminal --geometry 1400x620+20+60 &
DISPLAY=:0 netsurf --window_width 1400 --window_height 620 --window_x 20 --window_y 60 --font_size 192 --scale 150 &
DISPLAY=:0 svkbd-mobile-intl -g 1400x320+20+700 &
#DISPLAY=:0 onboard -y 750 --size 1000x300 &
#DISPLAY=:0 featherpad --geometry 1400x620+20+60 &
#DISPLAY=:0 vncviewer -geometry 1400x960+20+60 192.168.43.9 &
#/usr/sbin/sshd &
Create/edit in /home/root/:
CREATE .bashrc:
Code:
source /home/root/.profile
HISTCONTROL=ignoreboth
shopt -s histappend
CREATE .profile:
Code:
alias ls='ls --color=never'
alias grep='grep --color=never'
Copy to /home/myuser/:
# cp -r /home/root/.bashrc /home/myuser/
# chown -R myuser:myuser /home/myuser/.bashrc
# cp -r /home/root/.profile /home/myuser/
# chown -R myuser:myuser /home/myuser/.profile
Create/edit settings in /home/root/.config/:
# mkdir /home/root/.config/
# cd /home/root/.config/
# mkdir gtk-3.0/
CREATE gtk-3.0/gtk.css:
Code:
scrollbar slider {min-width: 50px;}
scrollbar slider {min-height: 50px;}
{
font-family: "Noto Sans";
font-size: 24px;
}
CREATE gtk-3.0/settings.ini:
Code:
[Settings]
gtk-font-name=Noto Sans Regular 18
# mkdir libinput-touchscreen/
CREATE libinput-touchscreen/config:
Code:
# Format: <BORDER|GESTURE|TAP> <DIRECTION:N,S,E,W,X> <NUM_FINGER>
MOVEMENT S 2
xdotool key Page_Up
MOVEMENT N 2
xdotool key Page_Down
MOVEMENT E 2
xdotool click 3
MOVEMENT W 2
xdotool click 3
TAP X 3
xdotool key Ctrl+Shift+g
CREATE libinput-touchscreen/dims.txt:
Code:
0.000000 1448.000000 # X dimensions
0.000000 1072.500000 # Y dimensions
# cp /home/root/libinput-touchscreen-master/libinput-touchscreen /usr/local/bin/
Edit in /etc/ (using just "visudo" command to edit /etc/sudoers):
sudoers:
Code:
##
## User privilege specification
##
root ALL=(ALL:ALL) ALL
myuser ALL=NOPASSWD: /bin/login
myuser ALL=NOPASSWD: /sbin/poweroff
myuser ALL=NOPASSWD: /usr/bin/killall
myuser ALL=NOPASSWD: /usr/local/bin/libinput-touchscreen
##
Edit in /etc/udev/hwdb.d/:
60-evdev.hwdb:
Code:
# Sort by brand, model
evdev:input:b0000v0000p0000*
ID_INPUT=1
ID_INPUT_TOUCHSCREEN=1
EVDEV_ABS_00=::12
EVDEV_ABS_01=::12
Edit taskbar icon settings:
# cd /usr/share/applications/
# cp xvkbd.desktop svkbd.desktop
# cp xvkbd.desktop xdodd.desktop
# cp xvkbd.desktop xdorc.desktop
EDIT onboard.desktop
Code:
[Desktop Entry]
Exec=onboard -x 20 -y 700 --size 1400x320 &
Icon=onboard
EDIT svkbd.desktop
Code:
[Desktop Entry]
Exec=svkbd-mobile-intl -g 1400x320+20+700
Icon=svkbd
EDIT qterminal.desktop
Code:
[Desktop Entry]
Exec=qterminal --geometry 1400x620+20+60
Icon=qterminal
EDIT featherpad.desktop
Code:
[Desktop Entry]
Exec=env QT_FONT_DPI=175 featherpad %U
Icon=featherpad
EDIT netsurf.desktop
Code:
[Desktop Entry]
Exec=netsurf --scale 150
Icon=netsurf
EDIT vncviewer.desktop
Code:
[Desktop Entry]
Exec=/usr/bin/vncviewer -geometry 1400x960+20+60 192.168.43.1:5900
Icon=tigervnc
EDIT xdodd.desktop
Code:
[Desktop Entry]
Exec=xdotool sleep 2 mousedown 1 sleep 4 mouseup 1
Icon=xfce-wm-unmaximize
EDIT xdorc.desktop
Code:
[Desktop Entry]
Exec=xdotool sleep 2 mousemove_relative -- 60 0 click 3
Icon=wmtweaks
Exit the chroot environment
# sync
# exit
# chalpined.sh
VIII. FIRST STARTUP OF XORG FROM NICKEL MENU
From NickelMenu, select "landscape" orientation (Orientation - LANDSCAPE - handle above).
Connect your Kobo to WiFi internet (if not already connected) and and leave the WiFi menu open at the top of the screen.
From NickelMenu, select "Xorg". After a few seconds, you should see the keyboard and browser.
From desktop SSH session to Kobo, chroot to the Alpine root file system:
(You don't use the chalpine.sh script since the mounts are done by the NickelMenu command.)
# chroot /mnt/user /bin/sh
Update the hwdb binary file on-disk, and trigger a reload of all properties on your device:
# udevadm hwdb --update
# udevadm trigger /sys/class/input/event1
Edit the remaining configuration files:
# cd /home/root/.config
# mkdir openbox/
# cp /etc/xdg/openbox/*.xml openbox/
EDIT openbox/rc.xml:
Code:
</dock>
<keyboard>
<keybind key="C-S-g">
<action name="ToggleShowDesktop"/>
</keybind>
(*removed Ctl-U binding as it interferes with nano editor.)
CREATE netsurf/Choices:
Code:
font_size:192
accept_language:en
block_advertisements:1
send_referer:0
animate_images:0
enable_javascript:1
url_suggestion:0
window_x:20
window_y:60
window_width:1400
window_height:620
toolbar_status_size:6673
button_type:3
disable_popups:1
toolbar_items:back/history/forward/reloadstop/url_bar/copy/paste/zoomplus/zoomminus
bar_show:menu/tool
# cp tint2/t/nt2rc tint2/tint2rc
EDIT tint2/tint2rc:
Code:
###
#-------------------------------------
# Panel
panel_items = S:L::C::T:
panel_size = 100% 60
###
panel_position = top center horizontal
###
#-------------------------------------
# Launcher
###
launcher_icon_size = 48
###
launcher_item_app = onboard.desktop
launcher_item_app = svkbd.desktop
launcher_item_app = lxterminal.desktop
launcher_item_app = qterminal.desktop
launcher_item_app = com.github.maoschanz.drawing.desktop
launcher_item_app = featherpad.desktop
launcher_item_app = netsurf.desktop
launcher_item_app = vncviewer.desktop
launcher_item_app = xdodd.desktop
launcher_item_app = xdorc.desktop
###
#-------------------------------------
# Clock
time1_format = %H:%M
#time2_format = %A %d %B
time1_timezone = EST
time1_font = NotoSans Bold 32
clock_font_color = #ffffff 320
###
clock_lclick_command = xmessage -geometry 400x100+500+70 -fn -*-fixed-*-*-*-*-32-*-*-*-*-*-iso8859-* Charge Level : `cat /sys/class/power_supply/mc13892_bat/capacity`
###
Copy configuration files to /home/myuser/:
# cp -r /home/root/.config/ /home/myuser
# chown -R myuser:myuser /home/myuser/.config
Install some extra icons:
# cd /home/root/
# wget
https://dl-cdn.alpinelinux.org/alpin...-4.12.3-r0.apk
# tar zxvf xfwm4-4.12.3-r0.apk
# cp ./usr/share/icons/hicolor/scalable/actions/* /usr/share/icons/hicolor/scalable/apps/
# cp ./usr/share/icons/hicolor/scalable/apps/* /usr/share/icons/hicolor/scalable/apps/
Set up SSH server:
# ssh-keygen -A
# /usr/sbin/sshd
# ifconfig
eth0 inet addr:192.168.43.240 Bcast:192.168.43.255 Mask:255.255.255.0
# passwd
(and test from desktop "ssh root@192.168.43.240")
* Edit: This didn't actually work, but "ssh myuser@192.168.43.240" did.
** Not running sshd from the startup scripts anymore because was getting errors.
Manually invoking sshd after startup is more reliable.
Exit the chroot environment
(You don't use the chalpined.sh script since we will poweroff from the Kobo.)
# sync
# exit
# exit
Connection to 192.168.2.2 closed.
$
On the Kobo, minimize or kill the Netsurf browser and use the terminal to poweroff:
# sync
# poweroff
IX. FIRST STARTUP OF USER XORG FROM NICKEL MENU
Power on the Kobo.
From NickelMenu, select "landscape" orientation (Orientation - LANDSCAPE - handle above).
Connect your Kobo to WiFi internet and and leave the WiFi menu open at the top of the screen.
From NickelMenu, select "User Xorg". After a few seconds, you should see the keyboard and browser.
# ***NOTE qterminal runs as root to get around terminal bug***
On the Kobo, minimize or kill the Netsurf browser and use the terminal to poweroff:
# sync
# sudo poweroff
* Edit:"sudo" not needed from root terminal
X. BACKUP YOUR KOBO ALPINE LINUX CHROOT
Connect to your Kobo from your desktop by ssh or telnet:
e.g.
$ ssh root@192.168.2.2 -p 2222
OR
$ telnet <IP>
WHERE <IP> is the Kobo's IP address as given by "IP Address" entry in NickelMenu.
From desktop SSH session to Kobo, first back up support files to /mnt/onboared/shared/ folder:
# cd /mnt/onboard/shared
# cp /mnt/onboard/.adds/nm/config.txt .
# cp /mnt/onboard/opt/usbtoeth .
# cp /mnt/onboard/opt/usbtoethd .
# cp /mnt/onboard/opt/otgon.sh .
# cp /mnt/onboard/opt/uxorg-boot.sh .
# cp /mnt/onboard/opt/xorg-boot.sh .
# cp /korenv.sh .
# cp /mnt/onboard/.adds/koreader/scripts/chalpine.sh .
# cp /mnt/onboard/.adds/koreader/scripts/chalpined.sh .
# ls
alpine-minirootfs-3.18.0-armv7.tar.gz otgon.sh
chalpine.sh usbtoeth
chalpined.sh usbtoethd
config.txt uxorg-boot.sh
fbink-xdamage.tgz xfwm4-4.12.3-r0.apk
korenv.sh xorg-boot.sh
libinput-touchscreen.zip xorg-kobo-touch.py
Now mount chroot and backup files on chroot:
# cd /mnt/onboard
# mount /mnt/onboard/alpine.img /mnt/user/
# mkdir /mnt/user/backup
# cd /mnt/user/backup/
# cp -r /mnt/user/home/root/libinput-touchscreen-master/ .
# cp -r /mnt/user/home/root/fbink-xdamage/ .
# cp /mnt/user/uxorg-chroot.sh .
# cp /mnt/user/xorg-chroot.sh .
# cp /mnt/user/home/root/.bashrc .
# cp /mnt/user/home/root/.profile .
# cp -r /mnt/user/home/root/.config/ .
# cp /mnt/user/etc/sudoers .
# cp /mnt/user/etc/udev/hwdb.d/60-evdev.hwdb .
# mkdir usrshare
# cp -r /mnt/user/usr/share/applications/ ./usrshare/
# cp /mnt/user/home/root/xfwm4-4.12.3-r0.apk .
# mkdir usrshare/iconshicolorscalableapps
# cp /mnt/user/usr/share/icons/hicolor/scalable/apps/* usrshare/iconshicolorscalableapps/
# cp -r /mnt/onboard/shared .
# ls -a
. 60-evdev.hwdb usrshare
.. fbink-xdamage uxorg-chroot.sh
.bashrc libinput-touchscreen-master xfwm4-4.12.3-r0.apk
.config shared xorg-chroot.sh
.profile sudoers
Now backup the chroot:
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/loop0 2.0G 784.9M 1.1G 41% /mnt/user
# cd /mnt/user
# tar zcvf /mnt/onboard/kobo-alpine318.tgz . # took 16 minutes
# cd /mnt/onboard
# umount /mnt/user
# ls -l kobo-alpine318.tgz # to see your newly created backup file, only 298MB
# sync
# exit
Connection to 192.168.2.2 closed.
$
$ zip alpine318.zip alpine.img
***
CAUTION: You know how Nickel does all that background work when you connect USB cable to desktop, click "connect", then later unmount?
Well, there may be a risk of data corruption if you had a loop mounted file, e.g. Alpine chroot.
https://www.mobileread.com/forums/sh...38&postcount=2
So better don't try this. But if you DO connect a USB cable, either exit the chroot and unmount the loop first, OR click "cancel" and use SSH/Telnet networking instead. (I have done this for months.)
***