WebDT-Live-JWM Debian 8 with full cooking instructions

This board posts about running linux on your webdt366
Post Reply
Posts: 556
Joined: Tue Mar 24, 2009 9:11 pm

WebDT-Live-JWM Debian 8 with full cooking instructions

Post by quotaholic » Thu Dec 07, 2017 2:07 pm

This is potentially the last image for the DT366GX that I will make. Within this post are instructions
for an experienced linux user on how to cook their own image for a DT366GX tablet. This will be a
complete custom operating system. Feel free to take my package choices or to produce your own custom build.
This is old hardware and as such I recommend using old software that uses old smaller libraries.

Not worth discussing reasoning as the hardware is old and although rugged there are lifecycles to
DT Research hardware and we are on the cusp of the release of the 390's and 315's that have
even harder hardware to set up an operating system for (poulsbo) but noteworthy on pricepoints.

This image is titled WebDT-Live-JWM for reasons that it has the JWM window manager and I can say
that it operates faster than my previous live image. Also the filesystem will be fat32 forcing
the borrowed slax scripts to save changes to a compressed module or .dat file opposed to uncompressed folders
on a linux native filesystem like the last image.

That being said this one takes a long time to reach desktop. Be patient, slim login manager may
show you a login prompt but wait 45 seconds to a minute and X will eventually take its time on
starting up. Think it took about 8 minutes the first boot on my hanging by a thread tablet.
JWM supports docks so I made a second dock on the desktop with some convienant tools.
My tablets hard buttons seldom work. Although scripted to I can only say that I hope that yours work with this image.
This dock at the top of the screen holds what common button functions would be.
Calibrate touchscreen is on the desktop as well as terminal, file manager and xvkbd toggle icon.

XEV, Xmodmap and evtest are all installed if you want to map different events to your hard buttons

Code: Select all

evtest /dev/input/event3
should give you all possible output from the button driver.
xev will show you keysyms of the presses
xmodmap has a file in /root/.Xmodmap with some bindings (mapped button presses to unused F-keys).
/root/.jwmrc has a binding section too where I mapped F13-F16 to applications or scripts.

setkeycodes should convers a scancode to a keycode. This will be needed for the right side button.
I have not played with the right side button as of time of posting. If I get it working Ill edit
this post in the future.

Button mapping starts at the atlas_btns kernel driver. I modporobe this in /etc/rc.local and then
let /root/.Xmodmap move the default mapping associated to the buttons (A=B=C..etc) to non used buttons like F13-F16 and
obvious choices for the d-pad like up, down, left and right. From there JWM has a /root/.jwmrc file
that has button mappings within it and in there I have tied F13-F16 to apps. The keyboard toggle is
handled by a file /usr/bin/togglekbd.sh which is a script to make it disappear if xvkbd is on the screen
or it will launch xvkbd at the bottom of the screen.

Anyone can build one of these images. Take virtualbox and add debian 8 netinstall iso and get a
basic system installed. Once there:

Code: Select all

apt-get install --no-install-recommends xserver-xorg xserver-xorg-video-vesa x11-utils 
x11-xserver-utils xserver-xorg-input-evdev evtest xinput-calibrator inputattach bluez slim xvt 
xinit xfe jwm wicd-gtk menu xz-utils squashfs-tools genisoimage
Should get you a workable install with a window manager login manager and everything but a web browser.
The last 3 files are dependencies of the Slax scripts.

I can understand if dillo is not your favorite web browser. I chose it for this image for its small size
and figuring many would do their own.
Things like making slim login as root are easile found on google.
JWM needs an icon theme. I used Faenza and did a little work with icons but not much. JWM is faster
if we are not using icons in the menus.

Note, xorg is a pita. Debians geode driver is broken and vesa is the only other driver that works. While in
Puppy linux and after xorgwizard runs copy the xorg.conf file out of puppy to the usb stick its running
from and copy it in to the image you build within virtualbox. This will save a huge headache in
getting a working xorg.conf file in to your build.

tip: xinput-calibrator can handle right clicking of the touchscreen via adding the last three of the "Option"
lines to ones /usr/share/X11/xorg.conf.d/99-calibration.conf file:
Section "InputClass"
Identifier "calibration"
MatchProduct "PenMount Serial TouchScreen"
Option "Calibration" "xx xx xx xx"
Option "EmulateThirdButton" "1"
Option "EmulateThirdButtonTimeout" "750"
Option "EmulateThirdButtonThreshold" "30"
and you will have a 750 millisecond hold to do on the screen for a context menu.

I di not do anything about a battery indicator nor sleep modes. Old ACPI used to be able to make
this tablet sleep and wake up with little hassle. Cant find same unmaintained script anylonger.

Once you have all of that installed cd to /tmp and

Code: Select all

wget --no-check-certificate https://github.com/Tomas-M/linux-live/master/tarball

Code: Select all

tar -xvf master

Code: Select all

rm master

Code: Select all

cd Tomas-M-linux-live
nano config (change build name)

Code: Select all

once done ...

Code: Select all

cd ..

Code: Select all


and you will have a iso file that you can move to a usb stick

Now download the tarball.zip from github and extract the contents. We need to copy the following:


to /dev/sda1/WebDT-Live-JWM/rootcopy/usr/bin/

These files get copied in to the filesystem as the operating system is booting as part of the design of the live scripts.
You will find these scripts in /usr/bin once booted up and they are usable! On normal shutdown Tomas scripted
these to automatically save your changes to a .dat file in /WebDT-Live-JWM/changes/changes.dat. No need
to add file names in configs anymore, just: slax.flags=perch on the kernel boot line.

You will have kernel panic if you try grub4dos and it may take a few tries of moving things around
in legacy grub before it boots well. I am writing this post mostly from memory but the menu.lst
when tranplanting the operating system takes me a few tries to get right.

Grab a puppy linux iso that works on your tablet. Add the iso image we just made to the usb stick containing puppy.
Booting puppy with "pfix=nox" and then running xorgwizard should get you to a desktop on puppy.
Click on the drive containing puppy and iso image.
Use gparted to format the internal drive to fat32.
Click on internal drive after formatting, to mount it.
Click on the WebDT-Live-JWM iso to mount that. Copy the WebDT-Live-JWM folder from the iso and copy it to the
internal drive. Copy all contents from the syslinux.cfg file and put it in to a text file or just leave it copied.
In Puppy navigate to the menu item for legacy grub. Run it and let it install to /dev/sda.
After grub installation go to /dev/sda1/boot and find the menu.lst. Past in the kernel and append lines to menu.lst.
Change the VGA=791 to vga=771
add "acpi=force" after vga=771
At the very end of the second boot line add"
This is the magic word for making changes persistent. Can be validated by watching the OS boot,
After seeing in white "live kit init" look for a line activating persistent changes.

Now that you have my recipe for how to make such an image yourself I will let you know about the
small number of programs within this image.

Dillo - Web Browser - chosen for small size / overhead. Starts fast.
Bluez - Fire it up and type help. You have bluetooth control for pairing, trusting, scanning, etc.
WICD-GTK - network manager
inputattach - attaches serial input devices to the input layer. "inputattach --daemon -pm9k /dev/ttyS0"
is the line used to make the touchscreen work without penmount drivers. Find it in /etc/rc.local
xinput-calibrator - calibration for touch screen. File in /usr/share/X11/xorg.conf.d/99-calibration.conf
XFE - X file manager with image and editing apps included, xfwrite, xfview, etc.
JWM - Window manager
urxvt - terminal emulator
xvkbd - virtual keyboard

Some tricks that tomas (Slax) suggests is install your apps that you want first one at a time.
After each install:

Code: Select all

savechanges /mnt/sda1/WebDT-Live-JWM/Modules/application.sbv
This will make a compressed bundle of that application and save it in the modules folder.
Much easier to manage updates on certain applications if all you have to do is delete the
module and reinstall it using the method above.

After building the image and then using slax scripts to compress it this image came out at 200MB.
Expect it to take 225mb installed, once the scripts set up a persistent save file on the internal
drive. Should leave ~50 percent of your internal storage available.

If you already have my last image installed just copy over the 01-core.sb and the rootcopy directories.
If not then you have to go the puppy usb route and copy the iso and linux live download to your
puppy bearing usb and follow the above instructions. Gparted _> fat32 for the internal drive, copy files
over, grub legacy from puppy linux menu. Copy the syslinux.cfg boot lines to /boot/grub/menu.lst and experiment.

If all works well you should have the best distribution WebDT.org has made available yet as its still supported by Debian
and apt-get is installed and working. Feel free to apt-get some software. Just be aware that the
sync alone may take up 50mb of space just to update. If you install software be aware that you are
limited in storage space and try to use the Slax method of:

Code: Select all

savechanges /mnt/sda1/WebDT-Live-JWM/modules/application.sb
as that will save the changes as compressed modules that get loaded at boot time. If not it gets
stored in the changes.dat file under what I assume would be some kind of compression however
squashfs offers a great ratio on compression. The .sb files or bundles we are making with these
savechanges script are easile 4:1 or greater in compression. Think the virtualbox image I had was
around 800mb before compressing this image down to 200mb.

Try to remember to apt-get clean before shutdown otherwise all that fat from the apt-get update
gets loaded next boot at takes space in what limited memore is available in these tablets.

This image is being delivered as a dd as it was taken from my hard drive as it was installed and configured.
Lots of posts on this forum on how to do. The quick tutorial:

Puppy linux is needed and with the dd image on the usb stick along with puppy and in the root of the drive.

Boot the tablet to puppy linux usb stick with usb keyboard / mouse attached via hub.

Gparted in puppy to format the internbal drive fat 32 and with bootable flag checked.

click on sdb1 on puppy desktop and launch a terminal there once window is up. In terminal type:

Code: Select all

dd if=WebDT-Live-JWM.dd of=/dev/sda
And wait for a long time for wach sector of the image to copy in to your tablet. Once finished you should be all set.
This is alien to anyone who has not done it before but trust me it works and is much faster than
building your own image.

I have heard of people using old versions of norton ghost to install dd images however I have not tried
nor can I confirm.

Reboot and allow for up to 8 minutues for the first boot and you should have a functional minimal
operating system that has decent hardware utilization and current software for your WebDT 366GX.

You may have an inverted calibration on your touchscreen. If so find the icon on the desktop for the
finger and that will help you calibrate the touch screen. Have a steady hand and avoid spots with screen damage
if you have any as it will repeat the calibration if it detects a mis click.

There you have it. Virtual box and linux live and slax and debian are decent combinations. This image runs almost
like its nativelly installed and not a live operating system. Apps take a few moments to open but this
has always been the case with the GX series. This is the last image I intend to make so here I hand off
the recipe I used to accomplish the task.

Image link:

https://drive.google.com/open?id=1XIbSj ... 5HIxLwEAwn

Post Reply