View Single Post
Old 02-27-2024, 07:05 PM   #14
elinkser
Groupie
elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.elinkser has survived committing the World's Second Greatest Blunder.
 
Posts: 185
Karma: 146236
Join Date: Oct 2022
Device: Kobo Clara HD
MIGRATE TO NEW /mnt/onboard/.adds/kordir/ FOLDER

***


MIGRATE TO NEW /mnt/onboard/.adds/kordir/ FOLDER

Originally, the /mnt/onboard/.adds/koreader/scripts/ folder was a handy place to install elinks so we could run it from KOReader terminal.
But it has gotten cluttered, and we have added many apps like fbpad that are not even run from KOReader terminal, not to mention some libfile clashes that have come up.
So we will move everything to the /mnt/onboard/.adds/kordir/ folder and point the /korenv.sh script there.
Note that you would now have to run ". /korenv.sh" from KOReader terminal to set the PATH and LD_LIBRARY_PATH, same as in fbpad, since it is no longer the default KOReader path.


# cd /mnt/onboard/.adds/

# mkdir kordir

# mkdir kordir/scripts

# mkdir kordir/libs


POST #3 FILES:

# cd /mnt/onboard/.adds/koreader/scripts/

# mv elinks nano wgets w3m moon-buggy ttyper chalpine.sh chalpined.sh fbink /mnt/onboard/.adds/kordir/scripts/

# cd /mnt/onboard/.adds/koreader/libs/

# mv ld-musl-armhf.so.1 libbz2.so.1 libc.musl-armv7.so.1 libcrypto.so.3 libexpat.so.1 libssl.so.3 libformw.so.6 libmenuw.so.6 libncursesw.so.6 libpanelw.so.6 libidn2.so.0 libunistring.so.5 libpcre2-8.so.0 libpcre2-posix.so.3 libcord.so.1 libgc.so.1 libstdc++.so.6 libfbink.so.1 /mnt/onboard/.adds/kordir/libs/

# mv w3m/ /mnt/onboard/.adds/kordir/usr/lib/

Copy your cert.pm and certs/ca-certificates.crt to the /etc/ssl/ directory.

Copy your etc/terminfo directory to the /etc/ directory.


EDIT /korenv.sh TO POINT TO NEW FOLDER:

# vi /korenv.sh
Code:
#!/bin/sh

export PATH=/mnt/onboard/.adds/kordir/scripts:/mnt/onboard/.adds/koreader/plugins/terminal.koplugin/:/mnt/onboard/.adds/koreader/scripts:$PATH
export LD_LIBRARY_PATH=/mnt/onboard/.adds/kordir/libs:/mnt/onboard/.adds/koreader/libs:$LD_LIBRARY_PATH
export TERM=screen
export FBPDF_PERCENT=58 
export HOME=/mnt/onboard/.adds/kordir/
cd $HOME

alias ls='ls --color=never'

Run (". /korenv.sh" and) elinks once, then update the new .elinks/ folder:

# vi /mnt/onboard/.adds/kordir/.elinks/bookmarks
Code:
Kobo Reader - MobileRead Forums	https://www.mobileread.com/forums/forumdisplay.php?f=223	0
# vi /mnt/onboard/.adds/kordir/.elinks/elinks.conf
Code:
    ## protocol.http.user_agent <str>
    set protocol.http.user_agent = "Mozilla/5.0(Android 11; Mobile; rv:89.0) Gecko/89.0 Firefox/89.0"

set mime.extension.jpg="image/jpeg"
set mime.extension.jpeg="image/jpeg"
set mime.extension.png="image/png"
set mime.extension.gif="image/gif"
set mime.extension.bmp="image/bmp"
set mime.extension.pnm="image/pnm"

set mime.handler.image_viewer.unix.ask = 1
set mime.handler.image_viewer.unix-xwin.ask = 0

set mime.handler.image_viewer.unix.block = 1
set mime.handler.image_viewer.unix-xwin.block = 0

set mime.handler.image_viewer.unix.program = "/mnt/onboard/.adds/kordir/scripts/fbink -G -y 30 -g file=% ;sleep 2"
set mime.handler.image_viewer.unix-xwin.program = "/mnt/onboard/.adds/kordir/scripts/fbink -G -y 30 -g file=% ;sleep 2"

set mime.type.image.jpg = "image_viewer"
set mime.type.image.jpeg = "image_viewer"
set mime.type.image.png = "image_viewer"
set mime.type.image.gif = "image_viewer"
set mime.type.image.bmp = "image_viewer"
set mime.type.image.pnm = "image_viewer"

      ## document.uri_passing.wgets.command <str>
      set document.uri_passing.wgets.command = "wgets  -nd -E -k -p -Q20M %c"

      ## document.uri_passing.wgets.foreground [0|1]
      set document.uri_passing.wgets.foreground = 0

bind "main" "Ctrl-W" = "tab-external-command"

bind "main" "Ctrl-F" = "frame-next"
bind "main" "Ctrl-B" = "frame-prev"
bind "main" "u" = "link-info"
bind "main" "Alt-l" = "lua-console"
bind "main" "Down" = "move-cursor-down"
bind "main" "Left" = "move-cursor-left"
bind "main" "Right" = "move-cursor-right"
bind "main" "Up" = "move-cursor-up"
bind "main" "Tab" = "move-link-next"
bind "main" "Shift-Tab" = "move-link-prev"
bind "main" "Ctrl-Right" = "none"
#
bind "main" "w" = "toggle-wrap-text"
bind "main" "t" = "open-link-in-new-tab"
bind "main" "e" = "menu"
bind "main" "S" = "save-as"
bind "main" "Ctrl-o" = "open-os-shell" 
bind "main" "y" = "copy-clipboard"

bind "main" "H" = "history-manager"
bind "main" "h" = "history-move-back"
bind "main" "l" = "history-move-forward"
bind "main" "j" = "move-cursor-down"
bind "main" "k" = "move-cursor-up"

  
bind "main" "Ctrl-a" = "none"
bind "main" "Ctrl-A" = "none"

set document.colors.use_document_colors = 0

POST #7,9,10,11,12 FILES:
(Note : fbkeyboard and fbpad variants have been upgraded to fbkeyboard2 and fbpad2 and are no longer needed.)

# cd /mnt/onboard/.adds/koreader/scripts/

# mv fbmenu.sh oskansi fbpad2 fbkeyboard2 fbpad2-shared fbkeyboard2-shared screen /mnt/onboard/.adds/kordir/scripts/

# cd /mnt/onboard/.adds/koreader/libs/

# mv libutempter.so.0 libskarnet.so.2.12 libutmps.so.0.1 /mnt/onboard/.adds/kordir/libs/


These should stay the same:
***
Copy the usr/share/screen/ folder on the PC to the /usr/share/ folder on the kobo.

Copy the etc/screenrc file on the PC to the /etc/ folder on the kobo.

Copy the etc/skel/ folder on the PC to the /etc/ folder on the kobo.

Copy your agetty binary (needed for running fbpad2 from USB keyboard as in Posts #5,7,9) from the scripts/ folder on the PC to the sbin/ folder on the kobo.

# cp /mnt/onboard/.adds/kordir/libs/ld-musl-armhf.so.1 /lib/

# vi /etc/udev/rules.d/90-fbpad.rules
Code:
# : 90-fbpad.rules 2015-01-10 23:58:00Z NiLuJe $
# Runs early at boot... (onboard *might* be mounted at that point)
KERNEL=="loop0", RUN+="/sbin/agetty -s 38400 tty1 vt100"
***

Move fonts required by oskansi,fbkeyboard2, fbpad2.

# cd /mnt/onboard/.adds/koreader/

# mv RobotoMono-Medium.tf RobotoMono-MediumS.tf courr.tf gen.sh mkfn_ft DejaVuSansMono.ttf DejaVuSansMono.tf DejaVuSansMonoS.tf /mnt/onboard/.adds/kordir/

# cd /mnt/onboard/.adds/oskansi/

# mv keymap1-en_us.json keymap2-en_us.json osk-keymap-LC.json osk-keymap-UC.json Roboto-Medium.ttf RobotoMono-Regular.ttf RobotoMono-Bold.ttf RobotoMono-Italic.ttf /mnt/onboard/.adds/kordir/

Update fbmenu.sh (from Post #7) to point NickelMenu submenu to new fbpad2,fbkeyboard2 binaries:

# vi /mnt/onboard/.adds/kordir/scripts/fbmenu.sh
Code:
#!/bin/sh                                        
# fbmenu - fbpad and fbkeyboard selection menu

num=0                              
qndb -m dlgConfirmCreate true                                       
qndb -m dlgConfirmSetTitle "1-Stop agetty; 2-fbpadkb;      3-fbpadkbS;   4-fbpad;          5-fbpadS;        6-oskansi;       7-oskansiS;     8-elinks;   Select option (1-8):"
qndb -m dlgConfirmSetLEPlaceholder "1"
qndb -m dlgConfirmShow                           
result=$(qndb -s dlgConfirmTextInput)            
textIn=$(echo $result | sed 's/dlgConfirmTextInput //')
num=$(echo $textIn | sed 's/[^0-9]//g')
num=${num:-1}
if [ "$num" != "$textIn" ]
then
num=1
fi                                                                                                 

if [ "$num" == "1" ]; then
		qndb -m mwcToast 500 "You selected 1-Stop agetty+fbpad"
		fbcmd="/usr/bin/pkill agetty"
		qndb -m mwcToast 200 "$fbcmd"
		fberr=$($fbcmd 2>&1)
		fbcmd="/usr/bin/pkill fbpad"
		qndb -m mwcToast 200 "$fbcmd"
		fberr=$($fbcmd 2>&1)
		fbcmd="/usr/bin/pkill fbkeyboard"
		qndb -m mwcToast 200 "$fbcmd"
		fberr=$($fbcmd 2>&1)
		fbcmd="/usr/bin/pkill oskansi"
		qndb -m mwcToast 200 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "2" ]; then
		qndb -m mwcToast 1000 "You selected 2-fbpadkb"
		export HOME="/mnt/onboard/.adds/kordir/"
		cd "$HOME"
		fbcmd="/mnt/onboard/.adds/kordir/scripts/fbkeyboard2"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1) &
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 -p 59 /bin/sh 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "3" ]; then	
		qndb -m mwcToast 1000 "You selected 3-fbpadkbS"
		export HOME="/mnt/onboard/.adds/kordir/"
		cd "$HOME"
		fbcmd="/mnt/onboard/.adds/kordir/scripts/fbkeyboard2"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1) &
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 -f RobotoMono-MediumS.tf -p 59 /bin/sh 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "4" ]; then
		qndb -m mwcToast 1000 "You selected 4-fbpad"
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "5" ]; then
		qndb -m mwcToast 1000 "You selected 5-fbpadS"
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 -f /mnt/onboard/.adds/kordir/RobotoMono-MediumS.tf 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "6" ]; then
		qndb -m mwcToast 1000 "You selected 6-oskansi"
		export HOME="/mnt/onboard/.adds/kordir/"
		cd "$HOME"
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 -p 59  /bin/sh 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1) &
		fbcmd="/mnt/onboard/.adds/kordir/scripts/oskansi"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "7" ]; then
		qndb -m mwcToast 1000 "You selected 7-oskansiS"
		export HOME="/mnt/onboard/.adds/kordir/"
		cd "$HOME"
		fbcmd="eval /mnt/onboard/.adds/kordir/scripts/fbpad2 -f /mnt/onboard/.adds/kordir/RobotoMono-MediumS.tf -p 59 /bin/sh 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1) &
		fbcmd="/mnt/onboard/.adds/kordir/scripts/oskansi"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
elif [ "$num" == "8" ]; then
		qndb -m mwcToast 1000 "You selected 8-elinks"
		export PATH="$PATH:/mnt/onboard/.adds/kordir/scripts"
		export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/mnt/onboard/.adds/kordir/libs"
		export TERM="xterm"
		export HOME="/mnt/onboard/.adds/kordir/"
		cd "$HOME"
		fbcmd="eval fbpad2 -p 59 elinks . 0</dev/tty1"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1) &
		cd "/mnt/onboard/.adds/kordir/"
		fbcmd="/mnt/onboard/.adds/kordir/scripts/oskansi"
		qndb -m mwcToast 1000 "$fbcmd"
		fberr=$($fbcmd 2>&1)
else
		qndb -m mwcToast 1000 "You selected an invalid option" 
fi

qndb -m mwcToast 1000 "${fberr:-"Bye!"}"

Add a few more NickelMenu items, if desired:

# vi /mnt/onboard/.adds/nm/config.txt
Code:
menu_item :main :fbmenu :cmd_spawn :quiet:exec /mnt/onboard/.adds/kordir/scripts/fbmenu.sh
    chain_success                      :dbg_toast          :Started fbmenu       
    chain_failure                      :dbg_toast          :Error                                   

menu_item :main    :fbpad2 -p 59       :cmd_spawn          :quiet :/mnt/onboard/.adds/kordir/scripts/fbpad2 -p 59  /bin/sh 0</dev/tty1
    chain_success                      :dbg_toast          :Started fbpad2
    chain_failure                      :dbg_toast          :Error starting fbpad2


#menu_item :main    :fbpad2 -p 42       :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbpad2 -p 42  /bin/sh 0</dev/tty1
#    chain_success                      :dbg_toast          :Started fbpad2
#    chain_failure                      :dbg_toast          :Error starting fbpad2

menu_item :main    :fbpad2 -p 63 -s 37 :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbpad2 -p 63 -s 37  0</dev/tty1
    chain_success                      :dbg_toast          :Started fbpad2
    chain_failure                      :dbg_toast          :Error starting fbpad2

menu_item :main    :fbpad2 -p 42  -f RobotoMono-MediumS.tf      :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbpad2 -p 42  -f RobotoMono-MediumS.tf /bin/sh 0</dev/tty1
    chain_success                      :dbg_toast          :Started fbpad2
    chain_failure                      :dbg_toast          :Error starting fbpad2


#menu_item :main    :fbpad2 -p 80 elinks       :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && export PATH="$PATH:/mnt/onboard/.adds/kordir/scripts" && export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/mnt/onboard/.adds/kordir/libs" && fbpad2 -p 80 elinks . 0</dev/tty1
#    chain_success                      :dbg_toast          :Started fbpad2
#    chain_failure                      :dbg_toast          :Error starting fbpad2


menu_item :main    :fbkeyboard2 -g        :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbkeyboard2 -g
    chain_success                      :dbg_toast          :Started fbkeyboard2
    chain_failure                      :dbg_toast          :Error starting fbkeyboard2


menu_item :main    :fbkeyboard2 -c 99 -g        :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbkeyboard2 -c 99 -g 
    chain_success                      :dbg_toast          :Started fbkeyboard2
    chain_failure                      :dbg_toast          :Error starting fbkeyboard2


menu_item :main    :fbkeyboard2 -r 3 -l 1 -g       :cmd_spawn          :quiet :export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/fbkeyboard2 -r 3 -l 1 -g
    chain_success                      :dbg_toast          :Started fbkeyboard2
    chain_failure                      :dbg_toast          :Error starting fbkeyboard2

 
menu_item :main :oskansi :cmd_spawn :quiet:export HOME="/mnt/onboard/.adds/kordir/" && cd "$HOME" && /mnt/onboard/.adds/kordir/scripts/oskansi
    chain_success                      :dbg_toast          :Started oskansi       
    chain_failure                      :dbg_toast          :Error                                   

menu_item :main :Stop oskansi :cmd_spawn :quiet:/usr/bin/pkill oskansi 
    chain_success                      :dbg_toast          :Stopped oskansi                       
    chain_failure                      :dbg_toast          :Error

POST #8 FILES:

# cd /mnt/onboard/.adds/koreader/scripts/

# mv gnuchess pnmscale pnmtopng jtop.sh jtopr.sh pngtopnm pamtogif ppmtogif giftopnm gifsicle /mnt/onboard/.adds/kordir/scripts/

# cd /mnt/onboard/.adds/koreader/libs/

# mv libintl.so.8 libnetpbm.so.11 libpng16.so.16.39.0 /mnt/onboard/.adds/kordir/libs/

Restore the original libpng16.so.16 to the /mnt/onboard/.adds/koreader/libs/ folder.

Redirect rmkit j2p.sh SAS script to new folder:
https://www.mobileread.com/forums/sh...59&postcount=9

# nano -l /mnt/onboard/.adds/rmkit/bin/apps/j2p.sh
Code:
...
40   if (expr "${output}" : ".*Portrait" > /dev/null); then
41     echo "CLICKED Portrait"
42     option="Output to Portrait"
43     cd /mnt/onboard/.adds/rmkit/data/harmony/ && export PATH=$PATH:/mnt/onboard/.adds/kordir/scripts && export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/onboard/.adds/kordir/libs && jpegtran -grayscale ${jpgSelected} |  djpeg -pnm | pnmscale -width 1088 -height 1488 | pnmtopng -alpha a50.pgm > ${pngFilename}
44   fi
45   if (expr "${output}" : ".*Landscape" > /dev/null); then
46     echo "CLICKED Landscape"
47     option="Output to Landscape"
48     cd /mnt/onboard/.adds/rmkit/data/harmony/ && export PATH=$PATH:/mnt/onboard/.adds/kordir/scripts && export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/onboard/.adds/kordir/libs && jpegtran -rotate 90 -grayscale ${jpgSelected} | djpeg -pnm | pnmscale -width 1088 -height 1488 | pnmtopng -alpha a50.pgm > ${pngFilename}
49   fi
50   sleep 0.1
51 done
...

POST #13 FILES:

# cd /mnt/onboard/.adds/koreader/scripts/

# mv gdbserver /mnt/onboard/.adds/kordir/scripts/

# cd /mnt/onboard/.adds/koreader/libs/

# mv libstdc++.so.6.0.30 /mnt/onboard/.adds/kordir/libs/libstdc++.so.6

Restore the original libstdc++.so.6 to the /mnt/onboard/.adds/koreader/libs/ folder.




***

Note : the fbink binary and libfbink.so.1 lib may not have already been installed in your KOReader folder, but they are necessary for such things as viewing images in elinks or viewing animated gifs.
You can download it from here:

FBInk: A small tool/library to print crap on your screen!
https://www.mobileread.com/forums/sh...d.php?t=299110
Attached Files : FBInk-v1.25.0.zip

On desktop:

$ cd myalpine/

$ mkdir FBInk-v1.25.0

$ mv FBInk-v1.25.0.zip FBInk-v1.25.0/

$ cd FBInk-v1.25.0/

$ unzip FBInk-v1.25.0.zip

$ tar zxvf KoboRoot.tgz

$ cd ..

$ mv FBInk-v1.25.0/usr/local/fbink/bin/fbink scripts/

$ mv FBInk-v1.25.0/usr/local/fbink/lib/libfbink.so.1.0.0 libs/libfbink.so.1

Copy your fbink binary from the scripts/ folder on the PC to the /mnt/onboard/.adds/kordir/scripts/ folder on the kobo.

Copy new lib from the libs/ folder on the PC to the /mnt/onboard/.adds/kordir/libs/ folder on the kobo:
libfbink.so.1


***

*** UPDATE ELINKS.CONF KEY BINDINGS ***

Update /mnt/onboard/.adds/kordir/.elinks/elinks.conf to harmonize elinks with new apps fbpdf and sfm:

REMOVE:
bind "main" "," = "history-move-back"
bind "main" "." = "history-move-forward"
bind "main" "#" = "toggle-numbered-links"

ADD:
bind "main" "H" = "history-manager"
bind "main" "h" = "history-move-back"
bind "main" "l" = "history-move-forward"
bind "main" "j" = "move-cursor-down"
bind "main" "k" = "move-cursor-up"

RESULT:
Use H instead of h for history
Use h/l instead of ,/. for move forward/back in history
Use j/k for for move cursor down/up
Use the default . to toggle displaying numbered links on page, so you can go directly to the link by entering the number.

***************************************

*** ALSO UPDATE /KORENV.SH ***

Update /korenv.sh to better work with new apps fbpdf and sfm:

REMOVE:
export TERM=xterm

ADD:
export TERM=screen
export FBPDF_PERCENT=58

***************************************



* Edit : add a couple more bindings to elinks.conf to not interfere with screen utility.

Code:
...
bind "main" "Ctrl-a" = "none"
bind "main" "Ctrl-A" = "none"

set document.colors.use_document_colors = 0
...

Last edited by elinkser; 04-05-2024 at 05:42 PM. Reason: restore original libpng16.so.16,harmonized keydefs,TERM,screen
elinkser is offline   Reply With Quote