Installing Arch Linux on a Pipo W7
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
mssl1680.fwExtracted Firmware- 37.90 kB - 03/13/2018 at 18:30 |
|
After some googling around and good comments from friend of mine i was able to get some good key words to look for when trying to get the touchscreen running.
The first is silead. Silead Inc. is the manufacturer of the touchscreen and silead is also the Linux kernel module providing the driver.
lsmod | grep silead
silead 16384 0
dmesg | grep silead
[ 3.089142] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.089179] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.089698] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 3.234661] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
[ 3.234671] silead_ts i2c-MSSL1680:00: Firmware request error -2
[ 3.235217] silead_ts: probe of i2c-MSSL1680:00 failed with error -2
Here we get the chip ID 0x50910000 and also the path where it assumes a firmware silead/mssl1680.fw (this path is relative to /lib/firmware/ so the full path ist /lib/firmware/silead/mssl1680.fw)
On GitHub there is a repository containing these firmware files for multiple tablets, but mine. But there is a firmware for the PiPO W2S. So I tried it out.
git clone https://github.com/onitake/gsl-firmware
sudo mkdir -p /lib/firmware/silead/
sudo cp gsl-firmware/firmware/linux/silead/gsl1680-pipo-w2s.fw /lib/firmware/silead/mssl1680.fw
sudo rmmod silead; sudo modprobe silead
dmesg | grep silead
[ 3.089142] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.089179] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.089698] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 3.234661] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
[ 3.234671] silead_ts i2c-MSSL1680:00: Firmware request error -2
[ 3.235217] silead_ts: probe of i2c-MSSL1680:00 failed with error -2
[ 3.156110] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.156145] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.158094] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 6.133417] input: silead_ts as /devices/platform/80860F41:01/i2c-1/i2c-MSSL1680:00/input/input7
sudo cat /dev/input/mouse0
When running the last command and touch around on the display, I get gibberish, which means, it works in gerenal. When running the X server, the curser wasn't below my finger and also the axis seemes swapped. So apparently some configuration and calibration is needed.
Since the actual installation also needs a 32-Bit UEFI comaptible bootloader, installing Arch is not as trivial. Again, after some search, I found a Medium Post that descibes exactly that. The only thing missing was using grub-mkconfig to make a new GRUB config.
You can see the way I did it in the instructions of this project.
Since I knew that a 32-Bit UEFI comaptible Linux Live Images was needed, I looked for similar projects.
The first thin I found was Linuxium's blgopost about customizing Ubuntu ISOs. She/He wrote a shell script that used some other tools to alter a boot image. But as the title suggests it only works with ubuntu flavored Linux distros. I gave it a shot with Xubuntu and indeed it bootet. The problem was that during the installation GRUB would always fail.
Since I didn't want to dive too deep into that, I searched for "arch 32 bit efi". The first result that came up was an Arch Wiki article about installing Arch on a ASUS x205ta. The steps described in that article are basically what maked up the bash listing in the first instruction of this proejct.
Is basically has three steps to it.
When that is done you can connect the USB stick and a keyboard to the tablet via the USB OTG cable and a hub. I even used USB 3.0 hub. This is not neccessary though, but it's nice to know that it works.
Again, going to the system setting byt hitting Esc or Del, booting from the USB stick under Save & Exit > Boot Override and you are presented with the Arch Linux Install GRUB and then the root shell.
In the box was next to the Tablet itself the Mirco-USB charging cable and a Micro-USB OTG cable. This is needed for getting into the system setting, because you can only boot into them by pressing Esc or Del at boot.
In my case, stuff like Secure Boot was not enabled, but I may be different for you. The first thing I did was disabling Quiet Boot just to be greeted by the nice American Megatrends screen every boot.
At the Golden Computer Arcade I also bought a USB3.0 hub, so I can simultaneously connect a keyboard and the boot stick. I also could have tried booting from SD card, but I didn’t.
In the Save & Exit tab is a section called Boot Override where you also can choose a bootable USB stick, if plugged in. In the beginning I tried and failed to boot from a normal boot stick I created with dd. I first I thought that the hardware is still locket to a specific kernel signature, although Secure Boot is inactive.
After some googling around I found out that in order too boot stuff on this or similar machines, I need something with a 32-Bit UEFI comaptible bootloader. When searching for “32 bit efi arch” I found this Arch Wiki Article. They describe the same problem for a different pice of hardware, so i gave it a shot.
Yesterday I bough the cheapest tablet I could find at one of the stalls at Golden Computer Arcade, Hong Kong. It’s a PIPO W7 which ran Windows. Although it was super cheap (389 HKD = 49.63 USD = 40.33 Euro) it was reasonably performant.
When I bought it, I asked the seller whether it can run Linux. He responded “no”,
but I think he meant that currently no Linux is installed, but Windows.
CPU | 1.33GHz Intel Atom Z3735G Quad Core 2MB L2 Cache |
RAM | 1GB |
GPU | Intel HD Z3700 Series |
ROM | 16GB |
Screen | 7 Inch 1280x800 IPS capacitive multi touch |
Battery | 3Ah |
Wifi | 802.11 b/g/n |
miscellaneous | Bluetooth USB OTG Mini HDMI Gravity Sensor 3.5mm Audio Jack Micro SD |
I like to write code listing so that they can be easily copypastad. Please do so at own risk. Some values, links etc. may be out of date. Instead of executing the code listing, you can also follow the instruction from the Arch Wiki Article.
# parameters
date=2018.03.01
iso=archlinux-$date-x86_64.iso
stick=/dev/sdb
point=/mnt/usb0
# download Arch Linux
wget http://mirrors.evowise.com/archlinux/iso/$date/$iso
label=$(isoinfo -i $iso -d | grep "Volume id" | grep -o "\w*$")
# create bootia32.efi
echo "
insmod part_gpt
insmod part_msdos
insmod fat
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod font
if loadfont \"${prefix}/fonts/unicode.pf2\" ; then
insmod gfxterm
set gfxmode=\"1024x768x32;auto\"
terminal_input console
terminal_output gfxterm
fi
menuentry \"Arch Linux archiso x86_64\" {
set gfxpayload=keep
search --no-floppy --set=root --label $label
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=$label add_efi_memmap
initrd /arch/boot/x86_64/archiso.img
}
menuentry \"UEFI Shell x86_64 v2\" {
search --no-floppy --set=root --label $label
chainloader /EFI/shellx64_v2.efi
}
menuentry \"UEFI Shell x86_64 v1\" {
search --no-floppy --set=root --label $label
chainloader /EFI/shellx64_v1.efi
}" > /tmp/grub.cfg
grub-mkstandalone \
-d /usr/lib/grub/i386-efi/ -O i386-efi\
--modules="part_gpt part_msdos"\
--fonts="unicode"\
--locales="uk"\
--themes=""\
-o "/tmp/bootia32.efi"\
"boot/grub/grub.cfg=/tmp/grub.cfg" -v
# partition and format USB stick
sudo fdisk /dev/sdb << EEOF
g
n
t
1
w
EEOF
sudo partprobe
sudo mkfs.vfat -F 32 -n $label "$stick"1
# copy everything to USB stick
sudo mount "$stick"1 $point
sudo bsdtar xf $iso \
--exclude=isolinux/ \
--exclude=EFI/archiso/ \
--exclude=arch/boot/syslinux/ \
-C $point
sudo cp /tmp/bootia32.efi $point/EFI/boot/bootia32.efi
sync
sudo eject $stick
During your normal Arch installation you usually come to the point where you install the bootloader. In most cases either GRUB or systemd-boot. We will install GRUB.
For the following commands I assume, you have arch-chroot ed into the installation.
I also assume that /boot will be your EFI System Partition.
pacman -S efibootmgr grub
grub-install \
--target=i386-efi \
--efi-directory=/boot \
--bootloader-id=Archlinux
grub-mkconfig -o /boot/grub/grub.cfg
Create an account to leave a comment. Already have an account? Log In.
You can extract the firmware from the driver of your device using that repository don't convert it. Then place it in /lib/firmware/silead/ with the name that you had referred in the /driver/platform/x86/silead_dmi.c of the custom kernel. Also made a copy with the mssl1680.fw name (backup firmware) in that folder. Then using onboard or a screen-keyboard (with some settings) you have the touchscreen!
is similar this? https://www.gearbest.com/tablet-pcs/pp_984305.html?wid=1433363
Type: Tablet PC
OS: Android 6.0
CPU Brand: MTK
CPU: MTK8163A
Core: 1.5GHz,Quad Core
RAM: 2GB
ROM: 32GB
External Memory: TF card up to 64GB (not included)
WIFI: 802.11b/g/n wireless internet
Support Network: WiFi
GPS: Yes
Bluetooth: 4.0
this is tablet with Android or findofs?
Become a member to follow this project and never miss any updates
Can you share the spec of this device? I want to write about it on my tablet review blog, you can see here https://techtheeta.com/best-drawing-tablet-for-kids/