Post Reply 
[HP41] New storage drive on ARM (Raspberry PI2+PILBox+HP-IL+USB-Storage)
11-04-2022, 05:51 PM (This post was last modified: 12-03-2023 08:48 AM by floppy.)
Post: #2
RE: [HP41] New storage drive on ARM (Raspberry PI2+PILBox+HP-IL+USB-Storage)
Installations instructions. Contact me via PM if any issue.
Updates made in it when necessary.

Code:
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#                             Top of the file
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#
# command summary for install of the PIL storage drive 
# on a raspberry pi board (version pi board must be >1)  
#
# possible on several other ARM boards
#     listed ARMs https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md
#        Pandora
#        Pyra
#        Gameshell
#        Raspberry Pi
#        ODROID
#        RK3399
#        Tinker Board (1/1S) or RK3288
#        Allwinner A64
#        Snapdragon 845
#        Phytium
#  .. a lot should make it (if by hand) 
#
#  schematic / drawing
#
#         +---------------------------------------------------+
#         |                                                   |
#         |                      HP-IL lines                  |
#         |                                                   |
#         |        +-----------------------------------+      |
#         |        |                                   |      |
#         |        |                                   |      |
#         |        |                                +--+------+--+
#         |        |                                |............|
#         |        |                                |............|
#         |        |                                |............|
#         |        |                                |....HP-IL...|
#         |        |                                |............|
#         |        |                                |............|
#         |        |                                |............|
#         |        |                                |............|
#         |        |                                |............|
#  +------+--------+------+      +------------------+------------+--+
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |              HP 41               |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      +----------------------------------+
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |........PIL-Box.......|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  |......................|      |                                  |
#  +-----------+----------+      |                                  |
#              |                 |                                  |  
#              |                 |                                  | 
#              |                 |                                  |  
#              |                 |                                  | 
#              |                 |                                  |  
#  USB Serial  |                 |                                  | 
#     line     |                 |                                  |  
#              |                 |                                  | 
#              |                 |                                  |  
#              |                 |                                  | 
#              |                 |                                  |  
#              |                 |                                  | 
#              |                 +----------------------------------+
#              |
#              |   +----+
#              |   |....|
#              |   |....|  USB Storage device
#              |   |....| 
#           +--+-+ +----+
#           |USB1| |USB2| 
#           |....| |....|
#       +---+----+-+----+----------+
#       |..........................|
#       |..........................|
#       |..........................|
#       |..........................|
#       |..........................|
#       |..........................|
#       |.........ARM Pi2..........|
#       |........or others.........|
#       |..........................|
#       |..........................|
#       |......................+---|
#       |......................|...|
#       |......................|...|  HDMI-port if screen attached
#       |......................|...|
#       |......................+---|
#       |..........................|
#       |........SD boot card......|        5v / 220v           
#       |...........+----+.........+--------------------------  
#       |...........|....|.........|
#       +-----------+----+---+--+--+
#                            |..|
#                            +--+  shutdown button
#
#
# this is very similar on a pi3 or pi4 (I tried to comment below 
#  where I could for these 2 boards)
# the script contain some area which are for pi4 only (64bits); these are marked
# read all lines before you apply
# all commands are done from a linux debian desktop or direct in the pi2 or
#  via SSH from the desktop
# no idea how it would looks like on a windows PC with these commands
# probably you will have to start ubuntu nested in Windows10 then use the 
#  appropriate linux commands
# this script cannot be used one single time due to several reboots
# = make copy / paste of the commands to use them in a terminal at the pi
#   or in a terminal connected via SSH to the pi
# the documentation of all commands for all pi models can be improved,
# contact me if i should improve this documentation since I am interested 
#  to improve this file for other users to make it more clear.
#
# use of the PIL-Storage device:
#   connect the HP41 via HP-IL to a PILBOX at the USB of the pi
#   on: connect the pi to 220v / 5v
#   .. the pi boot
#   the PIL storage drive is connected
#   switch the HP41 on
#   XEQ DIR on the HP41 just to see the drive is accessible
#   then you can save / retrieve.. programs from the virtual drive of the USB
#   off: if you have a screen, you can control the shutdown with a mouse
#    or push the shutdown button and wait a bit to see nomore led blinking
#   (you want to switch on again? push the button)
#   take the voltage supply 220v / 5v off; only if the pi is down
#   if you connect an HP71B, another drive for it is located at :7 which
#   means use the comand CAT :7 to see the files in this another drive
#
# ask 
#      floppy @ https://www.hpmuseum.org/forum/
# if any question
#
# this file is under CC BY-NC-SA   
# See https://creativecommons.org/licenses/
#
# history log
# 2022 Oct 21 file creation
# 2022 Oct 30 file first submission. Headless test open.
# 2022 Oct 31 headless tested on pi2
# 2022 Nov 04 upload into https://www.hpmuseum.org/forum/
# 2022 Nov 05 schematic picture at file top
# 2022 Nov 06 kernel version check added. few text comment / cosmetic changes
# 2022 Dec 09 few rework like HowTo ssh in an ealier place
# 2022 Dec 11 board list at the top of this file
# 2023 Dec 03 comment about HP71B added, called variant B / .vil files in it
# ........... file update: topic / chapter / why
# ........... file update: topic / chapter / why
# ........... file update: topic / chapter / why
# ........... file update: topic / chapter / why
# ........... file update: topic / chapter / why
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# install the OS on the PI 2B
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# download the zip file from there https://pimylifeup.com/download-raspbian/
# unzip the file with a file manager or the command unzip
# the file 2021-10-30-raspios-bullseye-armhf-lite.img should be now on your PC
# put the boot card SD Transcend SDHC 16GB in a PC port
# go into the superuser
# with GPARTED, reformat the whole SD in one FAT32 partition 
#  (in case it has already files on it)
su -
# give the password of your superuser on the PC
df -h
# since it show the SD was at sdd
# unmount the card
umount /dev/sdd1  
# first clean it up (if not new) for avoiding booting into old data rest
dd if=/dev/zero of=/dev/sdd status=progress
# output..
#15959409152 bytes (16 GB, 15 GiB) copied, 5554 s, 2.9 MB/s 
#dd: writing to '/dev/sdd': No space left on device
#31176705+0 records in
#31176704+0 records out
#15962472448 bytes (16 GB, 15 GiB) copied, 5559.44 s, 2.9 MB/s
#
# or format it as FAT32 before in GPARTED
# if it is a micro SD, try to avoid the use of an adapter (had issues with such device)
#
# write the image on the SD card (same for pi2..3..4)
dd if=/home/xxxxx/Downloads/2021-10-30-raspios-bullseye-armhf-lite.img of=/dev/sdd bs=4M conv=fsync status=progress
# output.. (it takes few minutes)
#466+0 records in
#466+0 records out
#1954545664 bytes (2.0 GB, 1.8 GiB) copied, 372.012 s, 5.3 MB/s
# disconnect all process in the superuser in case one still hang
sync
#
# = follow the commands from there: 
# https://www.elektronik-kompendium.de/sites/raspberry-pi/2111501.htm
# now put the card into the PI2, 
# connect an HDMI screen, a mouse and a keyboard
# or for more advanced user, connect it headless via SSH directly
# (look at internet advices; not listed here for now)
#
# connect the raspberry pi to the voltage supply, it will boot
#
# for me, the raspberry PI2 (and PI4) did not give anything at the screen.
# take the SD card out of it and edit it on another PC and 
# update the lines below later in the file config.txt of the /boot/ of the SD card
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. adapt the boot parameters for the pi2 screen to work
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo nano /boot/config.txt 
#
#hdmi_safe=1
#config_hdmi_boost=4
#dtparam=i2c_arm=off
#dtparam=spi=off
#dtoverlay=vc4-fkms-v3d
#dtoverlay=gpio-shutdown,gpio_pin=3
#max_framebuffers=2
#disable_overscan=1
#[all]
#gpu_mem=128
#enable_uart=0
##2 lines below necessary if 3G/1G not activ in your kernel therefore a new
##kerneln must be compiled later
# its a pi4? dont put that 2 lines hereafter because it has if from the start
# you dont know your kernel status? put the lines hereafter later after
# the custom kernel creation
#[pi2]  # could be pi3 or pi4, so change this when you make a new kernel name
#kernel=kernel7.img
#
# in the config.txt uncomment the audio and camera setup (most likely no need)
# unmount the SD card
# take the SD card out of the PC
# put it again into the pi and boot it
# most likely it will show "raspberrypi login:", then give pi, then return
# and the password raspberry
#
# depending of the keyboard it can be pressing raspberry or raspberrz 
#
# the pi will most likely boot into a UK keyboard which means
# you will have to press for example "B" = Beta on a german keyboard to see
# "-" appearing
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. update localisation Options (in a screen on the pi)
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo raspi-config
# choose option 5 Localisation Options
# .. Timezone and Keyboard
# choose option 8 Update
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. SSH activation (optional use if you can master this)
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo raspi-config
#
#..
# Choose option 3 Interface Options
# Choose option I2 SSH
# Choose <Yes>
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# change the password to "pilstorage" on pi2 (you can use another pw)
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# the default user is pi, defaultpassword is in the link hereafter
# https://tutorials-raspberrypi.com/raspberry-pi-default-login-password/
passwd
# ... inputs
# raspberry   # original pw on a pi2
# pilstorage
# pilstorage
##########################      or      ########################################
sudo raspi-config
# choose option 6 Advanced Options
# choose S3 Password
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. autologging in pi user
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo raspi-config
#
#..
#Choose option: 1 System Options
#Choose option: S5 Boot / Auto Login
#Choose option: B2 Console Autologin 
#            (or B4 Desktop Auto Login if Desktop installed)
#            (or repeat that autologin when you will have installed the Desktop)
#            (see Desktop install later)
#Select Finish
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. hostname setup (name visible in your network) to "pilstorage"
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# look at https://pimylifeup.com/raspberry-pi-hostname/
sudo raspi-config
#
#..
#Choose option: Network Options
#Choose option: Hostname
#pilstorage 
#then ENTER
#Select Finish, and reboot the Raspberry Pi.
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. Expand the filesystem for the whole SD card
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo raspi-config
# choose option 6 Advanced Options
# choose A1 Expand Filesystem
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# update the packages of the OS on the PI 2B
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# connect the raspberry pi to the LAN cable first
#
# if it dont connect to the internet automatically, 
# verify your router connection or setup as per below
##################   update your dhcpcd configuration  #########################
# my file /etc/dhcpcd.conf content is hereafter for going into the internet
#hostname
#clientid
#persistent
#option rapid_commit
#option domain_name_servers, domain_name, domain_search, host_name
#option classless_static_routes
#option interface_mtu
#require dhcp_server_identifier
#slaac private
#interface eth0
#static ip_address=192.168.178.52/24
#static routers=192.168.178.1
#static domain_name_servers=192.168.178.1
#
# and change /etc/systemd/system/dhcpcd.service.d/wait.conf  to
#[Service]
#ExecStart=
#ExecStart=/usr/sbin/dhcpcd -q -w
#
sudo dhcpcd -g 
sudo dhcpcd -k
#
################################################################################​
sudo apt update
#this can take few long minutes. so, be patient
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoclean
sudo apt autoremove
sudo reboot
# if any very good reason (will make a firmware upgrade); mostly dont do it
#sudo rpi-update
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. identify the USB ports geography for the devices 
#    (you can put in all hardware later)
#    (4 ports if it is a pi2 or pi4; if you have only 1 USB port, connect
#     an USB hub; it could be necessary to have an USB hub with voltage support)
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#    top left      USB pilbox
#    top right     (optional) USB mouse
#    bottom left   USB storage drive 
#    bottom right  (optional) USB keyboard
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. verify this is a PI 2 or 3 or 4 
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# not 1, else no Wine can be installed therefor we can stop here
# confirm this is a 32bits ARM. if 64bits, more commands to be used later 
#
dmesg 
# Output.. Machine model: Raspberry Pi 2 Model B Rev 1.1
#
#.. show what?.. lets have a deeper look
cat /proc/cpuinfo   
#
#.. show
#  
#processor    : 0
#model name    : ARMv7 Processor rev 5 (v7l)
#BogoMIPS    : 38.40
#Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
#                  vfpd32 lpae evtstrm 
#CPU implementer    : 0x41
#CPU architecture: 7
#CPU variant    : 0x0
#CPU part    : 0xc07
#CPU revision    : 5
#
#processor    : 1
#model name    : ARMv7 Processor rev 5 (v7l)
#BogoMIPS    : 38.40
#Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
#                  vfpd32 lpae evtstrm 
#CPU implementer    : 0x41
#CPU architecture: 7
#CPU variant    : 0x0
#CPU part    : 0xc07
#CPU revision    : 5
#
#processor    : 2
#model name    : ARMv7 Processor rev 5 (v7l)
#BogoMIPS    : 38.40
#Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
#                  vfpd32 lpae evtstrm 
#CPU implementer    : 0x41
#CPU architecture: 7
#CPU variant    : 0x0
#CPU part    : 0xc07
#CPU revision    : 5
#
#processor    : 3
#model name    : ARMv7 Processor rev 5 (v7l)
#BogoMIPS    : 38.40
#Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
#                  vfpd32 lpae evtstrm 
#CPU implementer    : 0x41
#CPU architecture: 7
#CPU variant    : 0x0
#CPU part    : 0xc07
#CPU revision    : 5
#
#Hardware    : BCM2835
#Revision    : a01041
#Serial        : 000000006b8bbcc4
#Model        : Raspberry Pi 2 Model B Rev 1.1
#
# "neon" indicated in the front of the cpu function list is mandatory
#
#.. from 
#.. https://de.wikipedia.org/wiki/Raspberry_Pi
#   32bits
#
#   or here..
#   https://picockpit.com/raspberry-pi/your-64-bit-raspberry-pi-os-questions-answered/
#   .. How do I check if my Raspberry Pi is 64 or 32 bit?
#      If you have a Raspberry Pi 1, 2 and Zero, you have a 32-bit Raspberry Pi.
#      If you have the Zero 2, Pi 3, 4 and corresponding Compute Modules, 
#      you have a 64 bit Pi. See this table for more info:
#      see link above
#
# to see/check the RAM available
free -h
#               total        used        free      shared  buff/cache  available
#Mem:           870Mi        53Mi       708Mi       0.0Ki       108Mi      767Mi
#Swap:           99Mi          0B        99Mi
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. install lxde desktop: a screen/keyboard/mouse is the preferred 
#   Desktop environment necessary for winecfg and ILPER etc. later 
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo apt install xserver-xorg
sudo apt install lxde-core lxappearance
sudo reboot
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. screensaver off (will save CPU power) and will not disturb later 
#   during the use
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo nano ~/.config/lxsession/LXDE/autostart
#should have following below inside the file
#@lxpanel --profile LXDE
#@pcmanfm --desktop --profile LXDE
#@xset s off
#@xset -dpms
#@xset s noblank
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. Install Midnight Commander for having a file management system 
#   in a SSH terminal. Recommended. Not mandatory.
#   I use it for the transfer of files between the pi and my home router
#   (on the router are some generic files like HP41.jpg from other PCs
#    for creating the icons of the scripts disclosed later)
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo apt-get install mc
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. Install htop for looking at cpu usage 
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# start the install only if the cpu load is low. If the cpu load is high,
# then shutdown the (optional only!) processes
sudo apt-get install htop
htop
# output looks good? next steps..
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. look at the free place on the SD card
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
free -h
#or
df -h
#
#all fine so far? Enough room?
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#xxxxxxx   Configure to a 3G/1G kernel if not already in place   xxxxxxxxxxxxxxx
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#
# .. IF this is not done. we must do it.
# .. lets check this
sudo modprobe configs
uname -m
#
gunzip < /proc/config.gz | grep VMSPLIT
# ... output
## CONFIG_VMSPLIT_3G is not set
## CONFIG_VMSPLIT_3G_OPT is not set
#CONFIG_VMSPLIT_2G=y    
## CONFIG_VMSPLIT_1G is not set
#
# .. this is not done for the pi2. we must do it. Should be CONFIG_VMSPLIT_3G=y
# .. this should be already done on a pi4
#
# https://ptitseb.github.io/box86/COMPILE.html
# A build for model 2, 3 and 4 can be done. 
# Model 1 and 0 cannot (at least not with Dynarec, as they lack NEON support)
#
#https://ptitseb.github.io/box86/X86WINE.html#examples
#
#https://www.novaspirit.com/2019/04/15/run-x86-arm/
#https://www.raspberrypi.com/documentation/computers/linux_kernel.html
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#xxxxxxxxx   cross compile a new kernel 3G/1G on another PC   xxxxxxxxxxxxxxxxxx
#xxxxxxxxx   if you dont want it takes long on your pi2       xxxxxxxxxxxxxxxxxx
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
cd ~/Downloads
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
sudo apt install crossbuild-essential-armhf
git clone --depth=1 https://github.com/raspberrypi/linux
cd linux
# look @ https://www.raspberrypi.com/documentation/computers/linux_kernel.html
# because some parameters of the 2 lines below are different for pi3 and 4
KERNEL=kernel7  # name for pi2
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
nano .config
#.. change from VMSPLIT_2G=y to VMSPLIT_3G=y if not already like it
#   https://www.novaspirit.com/2019/04/15/run-x86-arm/
nproc
# will give out how many processors you have on your pc
# put the number after the "- j" below. below it was done on a processor of 6
make -j 6 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
# take the SD card out of the PI and put on the PC
lsblk 
# sdf1        8:81   1   256M  0 part /media/pascal/boot   = fat32
# sdf2        8:82   1  29,5G  0 part /media/pascal/rootfs = ext4
mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
su -
#(password)
cd /home/user/Downloads/linux
sudo mount /dev/sdf1 mnt/fat32
sudo mount /dev/sdf2 mnt/ext4
sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
  INSTALL_MOD_PATH=mnt/ext4 modules_install
KERNEL=kernel7
sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
sudo umount mnt/fat32
sudo umount mnt/ext4
#
#.. modify the boot config file for defining a link to the kernel 
#.. if not already done
sudo nano /boot/config.txt
#...
#[pi2]
#kernel=kernel7.img
#..
# Put the card back into the pi, boot it
#
# check your lastest compiled kernel was booted
dmesg
#[    0.000000] Booting Linux on physical CPU 0xf00
#[    0.000000] Linux version 5.15.74-v7+ (pascal@ProDesk) 
# (arm-linux-gnueabihf-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld 
# (GNU Binutils for Debian) 2.35.2) #1 SMP Mon Oct 24 20:52:56 CEST 2022
#[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
#[    0.000000] CPU: div instructions available: patching division code
#[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing 
# instruction cache
#...
#
# yes. "1 SMP Mon Oct 24 20:52:56 CEST 2022" is the latest kernel
# if not, check the name, place, config.txt file why it was not used at boot
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. install Box86 via pi-apps which has first to be installed
#   the first install did not work for me on the pi2 (old binaries?)
#   if I remember it worked on the pi4 with pi-apps straight
#     you can try to install wine with pi-apps too instead of manual install
#     which is indicated below later
#   however, just compile (see later in this file) Box86. An easy task
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
wget -qO - https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash
#
#.. click on the icon "Apps" at the screen. Choose Box86. Install Box86.
#   then eventually update the Apps
sudo apt-get full-upgrade
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. install Box86 with new compile in case the straight install with pi-apps
#    was not working: first install failed for me (issue with x86emu)
#   second install manually had an updated box86 git content for my pi2
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md
cd ~
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build
cd build 
# -DRPI4=1 for Pi4 (use `-DRPI2=1` etc for other models)
cmake .. -DRPI2=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
#
make
# "make -j2 .. etc." was overloading my PI2 SWAP
sudo make install
sudo systemctl restart systemd-binfmt
sudo reboot
#
# for an updated box86 to be compiled again do following below
#   (if the Box86 maintener informed you he made an update in github)
#
# cd ~
# cd box86
# git pull origin master
#
# .. and again all other commands above from "cd build" on
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#.. Install wine 32bits (if the install with pi-apps did not worked straight)
#     this is what I had to do manually on the pi2 and a pi4
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#   Details there https://ptitseb.github.io/box86/X86WINE.html#examples
#   (read all carefully)
#
wineserver -k
rm -rf ~/.cache/wine
rm -rf ~/.local/share/applications/wine
sudo mv ~/wine ~/wine-old
sudo mv ~/.wine ~/.wine-old
sudo mv /usr/local/bin/wine /usr/local/bin/wine-old
sudo mv /usr/local/bin/wineboot /usr/local/bin/wineboot-old
sudo mv /usr/local/bin/winecfg /usr/local/bin/winecfg-old
sudo mv /usr/local/bin/wineserver /usr/local/bin/wineserver-old
#
wbranch="devel" #example: devel, staging, or stable 
#  (wine-staging 4.5+ requires libfaudio0:i386 - see below)
wversion="7.1" 
#example: 7.1
wid="debian" 
#example: debian, ubuntu
wdist="bullseye" 
#example (for debian): bullseye, buster, jessie, wheezy, etc
wtag="-1" 
#example: -1 (some wine .deb files have -1 tag on the end and some don't)
#
cd ~/Downloads
wget https://dl.winehq.org/wine-builds/${wid}/dists/${wdist}/main/binary-i386/wine-${wbranch}-i386_${wversion}~${wdist}${wtag}_i386.deb
# download
wget https://dl.winehq.org/wine-builds/${wid}/dists/${wdist}/main/binary-i386/wine-${wbranch}_${wversion}~${wdist}${wtag}_i386.deb
# (required for wine_i386 if no wine64 / CONFLICTS WITH wine64 support files)
dpkg-deb -x wine-${wbranch}-i386_${wversion}~${wdist}${wtag}_i386.deb wine-installer
# extract
dpkg-deb -x wine-${wbranch}_${wversion}~${wdist}${wtag}_i386.deb wine-installer
mv wine-installer/opt/wine* ~/wine # install
rm wine*.deb # clean up
rm -rf wine-installer # clean up
#
# Install shortcuts (make 32bit launcher & symlinks. Credits: grayduck, Botspot)
echo -e '#!/bin/bash\nsetarch linux32 -L '"$HOME/wine/bin/wine \
"'"$@"' | sudo tee -a /usr/local/bin/wine >/dev/null 
# Create a script to launch wine programs as 32bit only
#sudo ln -s ~/wine/bin/wine /usr/local/bin/wine # You could aslo just make a symlink, but box86 only works for 32bit apps at the moment
sudo ln -s ~/wine/bin/wineboot /usr/local/bin/wineboot
sudo ln -s ~/wine/bin/winecfg /usr/local/bin/winecfg
sudo ln -s ~/wine/bin/wineserver /usr/local/bin/wineserver
sudo chmod +x /usr/local/bin/wine /usr/local/bin/wineboot \
 /usr/local/bin/winecfg /usr/local/bin/wineserver
#
#
# BELOW ONLY FOR A PI3 or PI4 64bits ADDITIONALLY TO THE LINES ABOVE
# These packages are needed for running wine on a 64-bit RPiOS via multiarch
karch=$(uname -m)
if [ "$karch" = "aarch64" ] || [ "$karch" = "aarch64-linux-gnu" ] || [ "$karch" = "arm64" ] || [ "$karch" = "aarch64_be" ]; then
    sudo dpkg --add-architecture armhf && sudo apt-get update # enable multi-arch
    sudo apt-get install -y libasound2:armhf libc6:armhf libglib2.0-0:armhf libgphoto2-6:armhf libgphoto2-port12:armhf \
        libgstreamer-plugins-base1.0-0:armhf libgstreamer1.0-0:armhf libldap-2.4-2:armhf libopenal1:armhf libpcap0.8:armhf \
        libpulse0:armhf libsane1:armhf libudev1:armhf libusb-1.0-0:armhf libvkd3d1:armhf libx11-6:armhf libxext6:armhf \
        libasound2-plugins:armhf ocl-icd-libopencl1:armhf libncurses6:armhf libncurses5:armhf libcap2-bin:armhf libcups2:armhf \
        libdbus-1-3:armhf libfontconfig1:armhf libfreetype6:armhf libglu1-mesa:armhf libglu1:armhf libgnutls30:armhf \
        libgssapi-krb5-2:armhf libkrb5-3:armhf libodbc1:armhf libosmesa6:armhf libsdl2-2.0-0:armhf libv4l-0:armhf \
        libxcomposite1:armhf libxcursor1:armhf libxfixes3:armhf libxi6:armhf libxinerama1:armhf libxrandr2:armhf \
        libxrender1:armhf libxxf86vm1 libc6:armhf libcap2-bin:armhf # to run wine-i386 through box86:armhf on aarch64
#
# This list found by downloading...
#    wget https://dl.winehq.org/wine-builds/debian/dists/bullseye/main/binary-i386/wine-devel-i386_7.1~bullseye-1_i386.deb
#    wget https://dl.winehq.org/wine-builds/debian/dists/bullseye/main/binary-i386/winehq-devel_7.1~bullseye-1_i386.deb
#    wget https://dl.winehq.org/wine-builds/debian/dists/bullseye/main/binary-i386/wine-devel_7.1~bullseye-1_i386.deb
# then `dpkg-deb -I package.deb`. Read output, add `:armhf` to packages in dep list, then try installing them on Pi aarch64.
#
fi
#
#
# Now for whatever PI version 
#
#These packages are needed for running wine-staging on RPiOS
sudo apt install libstb0 -y
cd ~/Downloads
wget -r -l1 -np -nd -A "libfaudio0_*~bpo10+1_i386.deb" \
 http://ftp.us.debian.org/debian/pool/main/f/faudio/ 
#
# Download libfaudio i386 no matter its version number
dpkg-deb -xv libfaudio0_*~bpo10+1_i386.deb libfaudio
sudo cp -TRv libfaudio/usr/ /usr/
rm libfaudio0_*~bpo10+1_i386.deb # clean up
rm -rf libfaudio # clean up
#
# Download winetricks
sudo apt-get install cabextract -y     
cd ~/Downloads 
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks 
sudo chmod +x winetricks 
sudo mv winetricks /usr/local/bin/                                   
sudo reboot
#
# Boot wine
wine wineboot
# .. output 
#    Box86 with Dynarec v0.2.7 7d863efc built on Oct 26 2022 16:46:28
#    ALL FINE? .... nearly! it show the date of the compiled Box86 version we 
#                   have made
#
winecfg    
#
#if issue to start this, lets debug a bit and show the errors
#BOX86_LOG=3 winecfg 
# and post them into a raspberry pi forum https://forums.raspberrypi.com/
# the maintener of Box86 will help

# eventually Run Winetricks (was not necessary for me)
BOX86_NOBANNER=1 winetricks dotnet20sp2
#
#look at details there howto do it correctly 
# https://ptitseb.github.io/box86/X86WINE.html#examples
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. configure wine
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#
winecfg
# use the OS win7
# uncheck in „graphics“ „Allow the window manager to decorate the window“
#   (for using the full ILPER menues content and setups).
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. setup the usb storage device
#    when you put it into an USB port
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# see https://www.elektronik-kompendium.de/sites/raspberry-pi/2012181.htm
# preferably go into another PC and start the application GPARTED at the screen
# for formatting the USB storage with ntfs
# use ntfs file system for the windows user accessing it later on other PCs
# especially the microsoft windows PCs
# define a label name; "ILPERSTO" was choosen here
# then update the ARM board setup
sudo nano /etc/fstab
# include this
##LABEL=ILPERSTO   /media/usb1      ntfs   auto,nofail,sync,users,rw,noatime,nobarrier   0    0
# then go out after saving the file
sudo mkdir -p /media/usb1

sudo mount -a
sudo reboot
# check if it is there
lsblk
# and its size
df -h
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. install ILPER and ILPILBOX
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# go into the pi user main area when the pi is booted
cd ~
mkdir ILPILBOX
mkdir ILPER
# download the windows binaries from here https://hp.giesselink.com/hpil.htm
cd ILPILBOX
wget https://hp.giesselink.com/Runtime/vcredist2005_x86.exe
wget https://hp.giesselink.com/HPIL/Ilpilbox1.64.zip
# expand the binairies into the created directories
unzip Ilpilbox1.64.zip
cd ~/ILPER
wget https://hp.giesselink.com/HPIL/ilper2.4.zip
unzip ilper2.4.zip
wine /home/pi/ILPILBOX/vcredist2005_x86.exe
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. more DLLs to de downloaded
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# mfc80.dll from here https://de.dll-files.com/mfc80.dll.html
#    then put into ILPER .. AND .. ILPILBOX installation directory
#    and in the V41 (if used/installed) installation directory
# mfc80u.dll 
#    then put into ILVIDEO80 installation directory if you use this
#    when you connect an HP71 and the PI to a screen
# correct fonts in /home/pi/.wine/drive_c/windows/Fonts (for V41)
#    LCD.fon  LCD4.ttf  lucon.ttf
#
# start the programs to see if it is ok
wine /home/pi/ILPER/ilper.exe
wine /home/pi/ILPILBOX/ilpilbox.exe
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. create the start-file of the application
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo nano /home/pi/pildrive_appli.sh
# then put following content inside it
#
##!/bin/bash
#echo "PIL storage device"
#wine '/home/pi/ILPILBOX/ilpilbox.exe' '/start' 'C:\\users\pi\ILBox1.vil' &
#wait 30
#wine '/home/pi/ILPER/ilper.exe' '/start' 'C:\\users\pi\ILPer1.vil' &
#wait 30
#
# go out (it store it) and make it executable (in a file manager)
#
# then create the files ILBox1.vil and ILPer1.vil in the directory
# /home/pi/.wine/drive_c/users/pi/
#
# file ILBox1.vil
[Run]
App=H:\home\pi\ILPILBOX\ilpilbox.exe
[Settings]
WinPosX=0
WinPosY=0
AddrOut=localhost
PortOut=60001
PortIn=60000
Port=COM1
BaudRate=0
PilboxIDY=0
EnableRFC=1
#
# file ILPer1.vil
[Run]
App=H:\home\pi\ILPER\ilper.exe
[Settings]
WinPosX=527
WinPosY=0
Port=TCP/IP
BaudRate=0
PilboxIDY=0
AddrOut=localhost
PortOut=60000
PortIn=60001
AutoExtAddr=0
LoopPosScope=10
LoopPosPrinter=20
LoopPosDisk1=30
LoopPosDisk2=40
LoopPosDosLink=50
[Scope]
Scope=1
EnableRFC=1
EnableIDY=1
[Printer]
AID=46
ID$=DISPLAY\r\n
[Disk1]
ID$=HP9114B\r\n
HDFile=H:\media\usb1\hp9114b.dat
HDTracks=80
HDSides=2
HDSectors=16
[Disk2]
ID$=HDRIVE1
HDFile=H:\media\usb1\HDRIVE1.DAT
HDTracks=125
HDSides=8
HDSectors=64
[DosLink]
ID$=DOSLINK
FileOut=outfile.dat
FileIn=infile.dat

sudo reboot
cd ~
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. variant B compatible for HP41 or HP71B
# .. create the start-file of the application
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
##!/bin/bash
## /home/pi/hp7141hw_appli.sh
#echo "HW interfacing tools"
#wine '/home/pi/ILPILBOX/ilpilbox.exe' '/start' 'C:\\users\pi\ILBox2.vil' &
#wait 10
#wine '/home/pi/ILPER/ilper.exe' '/start' 'C:\\users\pi\ILPer2.vil' &
#wait 10
#wine '/home/pi/ILPER/ilper.exe' '/start' 'C:\\users\pi\ILPer3.vil' &
#wait 10
#echo "HW interfacing tools"
#
# go out (it store it) and make it executable (in a file manager)
#
# where the .vil files are ..
#
# ILBox2.vil
#
[Run]
App=H:\home\pi\ILPILBOX\ilpilbox.exe
[Settings]
WinPosX=797
WinPosY=139
AddrOut=localhost
PortOut=60001
PortIn=60000
Port=COM1
BaudRate=0
PilboxIDY=0
EnableRFC=1
#
# ILPer2.vil
#
[Run]
App=H:\home\pi\ILPER\ilper.exe
[Settings]
WinPosX=322
WinPosY=417
Port=TCP/IP
BaudRate=0
PilboxIDY=0
AddrOut=localhost
PortOut=60002
PortIn=60001
AutoExtAddr=0
LoopPosScope=10
LoopPosPrinter=20
LoopPosDisk1=30
LoopPosDisk2=40
LoopPosDosLink=50
[Scope]
Scope=0
EnableRFC=1
HDTracks=80
HDSides=2
HDSectors=16
[Disk2]
ID$=HDRIVE1
HDFile=H:\media\usb1\HDRIVE16.DAT
HDTracks=125
HDSides=8
HDSectors=64
[DosLink]
ID$=DOSLINK
FileOut=outfile.dat
FileIn=infile.dat
#
sudo reboot
cd ~
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. create icons on the Desktop in case you would like to stop/start it with
#    a screen
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
nano /home/pi/Desktop/PILSTO.desktop 
# put following content in it
#
#[Desktop Entry]  
#Name=HP & Pilbox ILPer
#Comment=this is an icon for starting all interfacing with wine
#Exec=bash /home/pi/pildrive_appli.sh
#Type=Application
#Terminal=false
#Icon=/home/pi/H41.jpg
#
#Make the application start immediately after double clicking on it; 
#PCManFM file manager > Edit > Preferences > General Tick the box 
#"Don't ask options on launch executable file“.
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. variant B for having HP41 or HP71 in the same setup 
# .. create icons on the Desktop in case you would like to stop/start it with
#    a screen
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
## /home/pi/Desktop/HP7141_IL.desktop
#[Desktop Entry]
#Name=PILBoxILPerVideo80.desktop
#Comment=this is an icon for starting all emulators with wine
#Exec=bash /home/pi/hp7141hw_appli.sh
#Type=Application
#Terminal=false
#Icon=/home/pi/HPLogo.jpg
#
#Make the application start immediately after double clicking on it; 
#PCManFM file manager > Edit > Preferences > General Tick the box 
#"Don't ask options on launch executable file“.
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. update the fonts (especially if you are starting VIDEO80 later with an HP71
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo apt-get install msttcorefonts
sudo reboot
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. update the inputs fields of ILPER and ILPILBOX if the .vil files setup
#    did not work
#    look at examples there https://hp.giesselink.com/hpil.htm
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#both Drive field of the ILPER application menue must be filled with an existing
#dat file name at a correct recognized drive location; 
#else the USB storage drive file will not be found automatically.
# you will get the DAT files from the ILPER zip file of Giesselink
# put both on the USB drive
#
# working example: HP41 
#
# ILPILBOX
#   field Out TCP : localhost
#   field Out Port: 6001 
#   field In Port : 6000 
#   PIL-Box Link:   COM1
#
# ILPER
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE1.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6001 
#         field In Port : 6000 
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. variant B for HP41 or HP71 with the same setup
# .. update the inputs fields of ILPER and ILPILBOX and ILVIDEO
#    look at examples there https://hp.giesselink.com/hpil.htm
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#both Drive field of the ILPER application menue must be filled with an existing
#dat file name at a correct recognized drive location; 
#else the USB storage drive file will not be found automatically.
# you will get the DAT files from the ILPER zip file of Giesselink
# put both on the USB drive
#
# working example: HP41 or HP71B
#
# ILPILBOX
#   field Out TCP : localhost
#   field Out Port: 6001 
#   field In Port : 6000 
#   PIL-Box Link:   COM2
#   .. unclick the field IDY Frames
#
# ILPER first (to be reached by the HP41 w/o IO module)
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE1.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6002 
#         field In Port : 6001 
#
# ILPER second (to be reached by the HP71 )
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b2.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE16.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6003 
#         field In Port : 6002 
#
# ILVIDEO 92198
#   field Out TCP : localhost
#   field Out Port: 6000 
#   field In Port : 6003 
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. make the file /home/pi/pildrive_appli.sh executed at boot
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# https://www.makeuseof.com/how-to-run-a-raspberry-pi-program-script-at-startup/
sudo nano /etc/xdg/autostart/bootpildrive.desktop
#
#with following content
#
#[Desktop Entry]  
#Name=PIL drive
#Comment=this is an automatic start script
#Exec=bash /home/pi/pildrive_appli.sh
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. or variant B for using HP41 OR HP41 on the same setup 
## file stored in /etc/xdg/autostart/bootpildrive.desktop
#[Desktop Entry]
#Name=Pil storage
#Comment=this is for starting ilpilbox and ilper
#Exec=bash /home/pi/hp7141hw_appli.sh
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. implement shutdown button 
#    screw a button on the case, which can connect 2 GPIOs
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# for avoiding corrupting the SD boot card by violent voltage supply cuts 
# a plan B would be to shutdown by SSH using 
#sudo shutdown -h 0
# look at https://www.stderr.nl/Blog/Hardware/RaspberryPi/PowerButton.html
sudo nano /boot/config.txt
# add line
#
#dtoverlay=gpio-shutdown,gpio_pin=3
#
# save and exit config.txt
# place a pushbutton between GPIO3 and GND (pin 5 and 6 on the 40-pin header)
# example for the PI2, look at the picture below
# https://learn.microsoft.com/de-de/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi
sudo reboot
#
# ---->   your PIL-Storage device should work. 
#         you can connect to a screen for non-headless (printing / video80)
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. post reduced size photographies in the forum
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
convert 20221031_101006.jpg -quality 10% button.jpg
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#                            Bottom of the file
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
EnableIDY=1
[Printer]
AID=46
ID$=DISPLAY\r\n
[Disk1]
ID$=HP9114B\r\n
HDFile=H:\media\usb1\hp9114b.dat
HDTracks=80
HDSides=2
HDSectors=16
[Disk2]
ID$=HDRIVE1
HDFile=H:\media\usb1\HDRIVE1.DAT
HDTracks=125
HDSides=8
HDSectors=64
[DosLink]
ID$=DOSLINK
FileOut=outfile.dat
FileIn=infile.dat
#
# ILPer3.vil
#
[Run]
App=H:\home\pi\ILPER\ilper.exe
[Settings]
WinPosX=1128
WinPosY=413
Port=TCP/IP
BaudRate=0
PilboxIDY=0
AddrOut=localhost
PortOut=60000
PortIn=60002
AutoExtAddr=0
LoopPosScope=10
LoopPosPrinter=20
LoopPosDisk1=30
LoopPosDisk2=40
LoopPosDosLink=50
[Scope]
Scope=0
EnableRFC=1
EnableIDY=1
[Printer]
AID=46
ID$=DISPLAY\r\n
[Disk1]
ID$=HP9114B\r\n
HDFile=H:\media\usb1\hp9114b2.dat
HDTracks=80
HDSides=2
HDSectors=16
[Disk2]
ID$=HDRIVE1
HDFile=H:\media\usb1\HDRIVE16.DAT
HDTracks=125
HDSides=8
HDSectors=64
[DosLink]
ID$=DOSLINK
FileOut=outfile.dat
FileIn=infile.dat
#
sudo reboot
cd ~
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. create icons on the Desktop in case you would like to stop/start it with
#    a screen
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
nano /home/pi/Desktop/PILSTO.desktop 
# put following content in it
#
#[Desktop Entry]  
#Name=HP & Pilbox ILPer
#Comment=this is an icon for starting all interfacing with wine
#Exec=bash /home/pi/pildrive_appli.sh
#Type=Application
#Terminal=false
#Icon=/home/pi/H41.jpg
#
#Make the application start immediately after double clicking on it; 
#PCManFM file manager > Edit > Preferences > General Tick the box 
#"Don't ask options on launch executable file“.
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. variant B for having HP41 or HP71 in the same setup 
# .. create icons on the Desktop in case you would like to stop/start it with
#    a screen
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
## /home/pi/Desktop/HP7141_IL.desktop
#[Desktop Entry]
#Name=PILBoxILPerVideo80.desktop
#Comment=this is an icon for starting all emulators with wine
#Exec=bash /home/pi/hp7141hw_appli.sh
#Type=Application
#Terminal=false
#Icon=/home/pi/HPLogo.jpg
#
#Make the application start immediately after double clicking on it; 
#PCManFM file manager > Edit > Preferences > General Tick the box 
#"Don't ask options on launch executable file“.
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. update the fonts (especially if you are starting VIDEO80 later with an HP71
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
sudo apt-get install msttcorefonts
sudo reboot
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. update the inputs fields of ILPER and ILPILBOX if the .vil files setup
#    did not work
#    look at examples there https://hp.giesselink.com/hpil.htm
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#both Drive field of the ILPER application menue must be filled with an existing
#dat file name at a correct recognized drive location; 
#else the USB storage drive file will not be found automatically.
# you will get the DAT files from the ILPER zip file of Giesselink
# put both on the USB drive
#
# working example: HP41 
#
# ILPILBOX
#   field Out TCP : localhost
#   field Out Port: 6001 
#   field In Port : 6000 
#   PIL-Box Link:   COM1
#
# ILPER
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE1.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6001 
#         field In Port : 6000 
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. variant B for HP41 or HP71 with the same setup
# .. update the inputs fields of ILPER and ILPILBOX and ILVIDEO
#    look at examples there https://hp.giesselink.com/hpil.htm
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#both Drive field of the ILPER application menue must be filled with an existing
#dat file name at a correct recognized drive location; 
#else the USB storage drive file will not be found automatically.
# you will get the DAT files from the ILPER zip file of Giesselink
# put both on the USB drive
#
# working example: HP41 or HP71B
#
# ILPILBOX
#   field Out TCP : localhost
#   field Out Port: 6001 
#   field In Port : 6000 
#   PIL-Box Link:   COM2
#   .. unclick the field IDY Frames
#
# ILPER first (to be reached by the HP41 w/o IO module)
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE1.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6002 
#         field In Port : 6001 
#
# ILPER second (to be reached by the HP71 )
#   field Drive HP9114B: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\hp9114b2.dat) 
#   field Drive HDRIVE1: click the menue and seach for the file 
#                        (on mine it was H:\media\usb1\HDRIVE16.DAT) 
#   field PIL-Box Link: TCP/IP
#   in TCP/IP menue.. 
#         field Out TCP : localhost
#         field Out Port: 6003 
#         field In Port : 6002 
#
# ILVIDEO 92198
#   field Out TCP : localhost
#   field Out Port: 6000 
#   field In Port : 6003 
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. make the file /home/pi/pildrive_appli.sh executed at boot
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# https://www.makeuseof.com/how-to-run-a-raspberry-pi-program-script-at-startup/
sudo nano /etc/xdg/autostart/bootpildrive.desktop
#
#with following content
#
#[Desktop Entry]  
#Name=PIL drive
#Comment=this is an automatic start script
#Exec=bash /home/pi/pildrive_appli.sh
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. or variant B for using HP41 OR HP41 on the same setup 
## file stored in /etc/xdg/autostart/bootpildrive.desktop
#[Desktop Entry]
#Name=Pil storage
#Comment=this is for starting ilpilbox and ilper
#Exec=bash /home/pi/hp7141hw_appli.sh
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. implement shutdown button 
#    screw a button on the case, which can connect 2 GPIOs
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# for avoiding corrupting the SD boot card by violent voltage supply cuts 
# a plan B would be to shutdown by SSH using 
#sudo shutdown -h 0
# look at https://www.stderr.nl/Blog/Hardware/RaspberryPi/PowerButton.html
sudo nano /boot/config.txt
# add line
#
#dtoverlay=gpio-shutdown,gpio_pin=3
#
# save and exit config.txt
# place a pushbutton between GPIO3 and GND (pin 5 and 6 on the 40-pin header)
# example for the PI2, look at the picture below
# https://learn.microsoft.com/de-de/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi
sudo reboot
#
# ---->   your PIL-Storage device should work. 
#         you can connect to a screen for non-headless (printing / video80)
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
# .. post reduced size photographies in the forum
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
convert 20221031_101006.jpg -quality 10% button.jpg
#
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​
#                            Bottom of the file
#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx​

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: [HP41] New storage drive on ARM (Raspberry PI2+PILBox+HP-IL+USB-Storage) - floppy - 11-04-2022 05:51 PM



User(s) browsing this thread: 1 Guest(s)