Linux on the Samsung Galaxy Tab 10.1... And you can too!

Hmm… I might have to get around to setting this all up again and uploading the SD card image. Might take a while with 100kb/s upload speeds. :slightly_smiling_face:

Hi Docsolid,

Thanks for the upload!
I tried booting with your recovery.img and it doesn’t hit the kernel panic any more.

It only gets me as far as this error, though:

EXT4-fs : couldn’t mount RDWR because of unsupported optional features (400)

I think it’s because I built the root filesystem on Debian 9 (Stretch), as that’s what my main Debian box is running.

It seems I’ll need to re-do the build of the root filesystem using the Debian Jessie virtual machine too.
I’m not familiar with how to access an SD card from a Virtual Machine, does Virtual Box support that kind of thing?
Otherwise, do I have to do the root filesystem build using some kind of loopback or devicemapper trick?

Thanks,
Ned.

Hi Ned!

As far as I see you don’t need access your SD from the VM. You just copy all the important stuff from your VM to the mentioned “results”-directory and copy this via the " shared" directory to your native linux. After this you don’t need the VM anymore.

(I installed the OS on the SD from a 16.04 Ubuntu)

On the native linux then, you chroot to the SD after installing everything via debootstrap. Then you copy the things from the results-directory to the SD.

All steps are very good described. You only need the VM for those directories you copy over to the SD later.

The only thing that’s really important:
The VM for the first steps has to be 32-bit and jessie or similar

ok mate i’m sorry, i didn’t see that point 2.1 has a dropdown…

installed new from point 2 and everything works really fine! thx for this great guide once more! maybe give a hint to the second dropdown :smiley:

1 Like

Hi Docsolid,

Good news!

Using your recovery.img and after building the root
filesystem all over again on a Debian 8 system, I’m
able to boot up Debian 8 on my
Sumsung Galaxy Tab 10.1 (2014) model GT-N8013.
I can only log in on the tty terminal (Ctrl Alt F1)
not via the graphical login. The graphical login
accepts my username and password, goes black for
a bit, then gives the graphical login again.
Perhaps I haven’t got a window manager installed
yet. At least I’m able to connect a USB keyboard
via an OTG adapter to the port at the bottom, so
I can type things on the command line, happiness!

Thanks so much for all your help, I’m sure to have
more puzzles along the way. This is a very nice system
to run Debian on.

Cheers,
Ned.

1 Like

Sorry, what do you mean “point 2.1 has a dropdown”?
Perhaps I’m missing that info too?

Oh, I see what you mean about Point 2.1, you have to click
on the tiny arrow and it rotates to display this text:

You probably want more than a console terminal login when
you boot up for the first time, especially if you don’t have
a way to connect a USB keyboard (via the Samsung port at the
bottom, using an OTG-to-USB connector cable).
The following is a list of some of the packages you should
consider installing. Xvkbd is a basic on-screen keyboard,
that you can reveal by clicking on the tiny human icon on
the top-right of the graphical login screen.

apt-get install locales
dpkg-reconfigure locales
apt-get install $(tasksel --task-packages standard)
apt-get install xorg xinput xvkbd xfce4 network-manager network-manager-gnome pulseaudio lightdm lightdm-gtk-greeter sudo
1 Like

Heh… I might just un-hide those sections, seems to be more trouble than its worth.

Oh, indeed! Thanks!

I managed to get the wifi connection working now on the GT-N8013,
I found I needed to make a symlink in /lib/modules like this, not
sure why but otherwise the module didn’t seem to get found so it
wasn’t getting loaded (no wlan0 was appearing for me).

cd /lib/modules
ln -s 3.0.31+ 3.0.31

The above symlink creation was followed by a system reboot,
then the wlan0 appeared for me.

I then did this to connect to my wifi let’s say the essid is “penlug”
(short for Peninsula Linux user’s group).

apt-get install iw
ifconfig wlan0 up
iw dev wlan0 connect penlug
dhclient -d wlan0

Then I’m able to do things like “apt-get install firefox-esr”
to install packages. Hopefully I’ll be able to get python3-pip
working on this architecture, that’s the only remaining dependency
(other than sound) that would be needed for picochess to work on
this tablet.

Thanks so much for putting together such a great guide.

Cheers,
Ned.

1 Like

You should be able to just do:
sudo apt-get install python3-pip
to install it.

Pretty busy at the moment, I’ll probably get to uploading the rootfs sometime in the next week.

Hi stenstorp,

Thanks, yes “sudo apt-get install python3-pip” gets pip3
installed. Unfortunately pip3 doesn’t seem to be capable
of installing all of picochess’s “requirements”, which
are like this:

cat requirements.txt

ConfigArgParse==0.12.0
Flask==0.12.2
paramiko==2.4.0
pyserial==3.4
python-chess==0.22.1
pyOpenSSL==17.5.0
requests==2.18.4
spur==0.3.20
tornado==4.5.1
configobj==5.0.6

When I try "sudo pip3 install --upgrade -r requirements.txt"
the result is pretty bad on the tablet. Even on Debian 8 (Jessie)
on Intel, where it gets further, it doesn't work either. So it
seems that for Jessie, I'll need to look around for an older
version of picochess that doesn't use pip3, or else figure out
how to upgrade to Debian 9. Could I just change sources.list
and do an apt-get update  /  apt-get dist-upgrade   to upgrade
to Debian 9, or do you think I'd run into a similar kernel panic
on boot as I was seeing before?

sudo pip3 install --upgrade -r requirements.txt

Downloading/unpacking ConfigArgParse==0.12.0 (from -r requirements.txt (line 1))
Running setup.py (path:/tmp/pip-build-cx6ouhkx/ConfigArgParse/setup.py) egg_info for package ConfigArgParse

Downloading/unpacking Flask==0.12.2 (from -r requirements.txt (line 2)) Downloading/unpacking paramiko==2.4.0 (from -r requirements.txt (line 3)) Downloading/unpacking pyserial==3.4 (from -r requirements.txt (line 4)) Downloading/unpacking python-chess==0.22.1 (from -r requirements.txt (line 5)) Running setup.py (path:/tmp/pip-build-cx6ouhkx/python-chess/setup.py) egg_info for package python-chess Traceback (most recent call last): File "", line 17, in File "/tmp/pip-build-cx6ouhkx/python-chess/setup.py", line 84, in long_description=read_description(), File "/tmp/pip-build-cx6ouhkx/python-chess/setup.py", line 33, in read_description description = open(os.path.join(os.path.dirname(__file__), "README.rst")).read() File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9759: ordinal not in range(128) Complete output from command python setup.py egg_info: Traceback (most recent call last):

File “”, line 17, in

File “/tmp/pip-build-cx6ouhkx/python-chess/setup.py”, line 84, in

long_description=read_description(),

File “/tmp/pip-build-cx6ouhkx/python-chess/setup.py”, line 33, in read_description

description = open(os.path.join(os.path.dirname(__file__), "README.rst")).read()

File “/usr/lib/python3.4/encodings/ascii.py”, line 26, in decode

return codecs.ascii_decode(input, self.errors)[0]

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position 9759: ordinal not in range(128)


Cleaning up…
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-cx6ouhkx/python-chess
Storing debug log for failure in /root/.pip/pip.log

Sorry for the above messy-looking message,
is there a guide anywhere I could learn how
to format things so that they’re readable,
like a wiki syntax or some such?

Hi docsolid,

I was able to connect to WPA-encrypted WiFi using similar
steps to the ones explained here:

https://wiki.debian.org/WiFi/HowToUse

I installed these packages:

sudo apt-get install iw wpasupplicant

The file that will contain your “pre-shared key” PSK (that is the key derived from your WiFi password and SSID, it’s a “hash” of both of these, apparently) is “/etc/network/interfaces.d/wlan0”, so we need to restrict the permissions on it so that only root can read it:

sudo bash
touch /etc/network/interfaces.d/wlan0
chmod 0600 /etc/network/interfaces.d/wlan0
exit

Taking your WPA passphrase and your SSID, you’ll need to use the program “wpa_passphrase” to calculate the correct WPA PSK “hash” by altering the following example:

wpa_passphrase myssid
It will prompt you for your WiFi password:
    my_very_secret_passphrase

The above command gives the output:

network={
        ssid="myssid"
        #psk="my_very_secret_passphrase"
        psk=ccb290fd4fe6b22935cbae31449e050edd02ad44627b16ce0151668f5f53c01b
}

You’ll need to copy from “psk=” to the end of the line, to put in your /etc/network/interfaces.d/wlan0 file.

sudo bash
vim /etc/network/interfaces.d/wlan0
exit

It should look something like this after you’ve finished editing:

cat /etc/network/interfaces.d/wlan0

auto wlan0
iface wlan0 inet dhcp
        wpa-ssid myssid
        wpa-psk ccb290fd4fe6b22935cbae31449e050edd02ad44627b16ce0151668f5f53c01b

If you want to try it out before rebooting, bring your wireless interface up using “ifup wlan0” (this will start wpa_supplicant as a background process):

sudo ifup wlan0

You’ll then need to request an IP address from your WiFi router:

sudo dhclient -d wlan0

After rebooting, it seems that each time I need to re-do this request for an IP, not sure why it doesn’t happen automatically, as I do have “dhcp” in the “iface wlan0 inet dhcp” line in the /etc/network/interfaces.d/wlan0 config file.

sudo dhclient -d wlan0

Added download links for the recovery and root filesystem! (just above part 3 in the guide)

I managed to make some progress installing the latest version with pip3 after installing some backported packages for Jessie but it still failed to run.
I think the issue is more related to the fact that the kernel being used is almost 4 years older than the version of Debian being run which expects kernel 3.16 rather than 3.0.

If you’re feeling experimental, you could try running Debian Wheezy rather than Jessie which used kernel 3.2 so, fairly similar. Just replace all mentions of jessie in the guide with wheezy.

It does work, I tested running wheezy before jessie to see if the original guide from 2012 worked.

I could try porting the patches to the kernel to a newer version but that’s a bit beyond my abilities at the moment. I’ll give it a go, no harm in trying, that might take a while though. :slightly_smiling_face:

Hi Stenstorp,

Thanks for your advice, I’ll definitely give Wheezy a try.
It sounds like most of the picochess development was done
on Wheezy anyway, based on their list of releases here.

https://github.com/jromang/picochess/releases?after=v0.70

Hopefully pip3 will work better for me in Wheezy due to
the more similar kernel version.

Thanks for uploading the root filesystem and recovery image.
I have them downloaded now, and I’m sure they’ll be a great
help to beginners too.

I’ll need to get a few more MicroSD cards for experimenting
with the various distros.

Cheers,
Ned.

1 Like

Hi Stenstorm,

I built a root filesystem for wheezy and booted it with the same recovery.img that docsolid provided earlier, and it does boot up.

But unlike in jessie (where wifi works), I’m not able to get the wifi working in Wheezy.

It seems that the wpa_supplicant isn’t running with the “-D nl80211,wext” when I’m in Wheezy,
whereas that does appear in Jessie.

Is there something slightly different that needs to be done in Wheezy to configure the wpa_supplicant?

I also tried a non-encrypted wifi network, dhclient wlan0 didn’t work for it in wheezy either.

I’m able to plug in a mouse and keyboard, so I can change anything that’d be necessary.

Thanks,
Ned.

1 Like

In Wheezy, I added my wpa-psk stuff to /etc/network/interfaces
(instead of /etc/network/interfaces.d/wlan0 which I’d done on Jessie)
and now wifi is working fine in Wheezy (after a reboot).

1 Like

@stenstorp
Hello! I’ve just tried to install it with your recovery & image, but got no result - after I have done all the steps(i’ve been doing it from TWRP shell), i’ve got just screen with ‘Downloading’ and ‘do not unplug the target’ or smth like that. Could you help me with that?

From TWRP? For the recovery, just follow the instructions (part 3) underneath the downloads. For the SD card image, burn it directly onto the SD card from your computer.