We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The road towards using regular linux on ebook readers

00:00

Formal Metadata

Title
The road towards using regular linux on ebook readers
Subtitle
Experiences and progress with Kobo/Tolino readers
Title of Series
Number of Parts
287
Author
Contributors
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Most Kobo/Tolino readers offer a well marked console port and often a second UART. If they are not water resistant, they offer an internal µSD card slot containing the whole operating system and bootloader so that sounds like an invitation to do something interesting with them besides just reading books. Especially in prolonged outdoor activities, the display and their low power consumption have their merits. Hardware is quite similar, so you also have chances to get a replacement next corner. Several devicetrees and also some drivers made their way into mainline linux now, on others upstreaming work is in progress. Support is starting to find its way into mobile linux distributions like postmarketOS and graphics start to work with standard APIs. In this talk I talk about my experiences, especially the current state of support in mainline linux, what is missing and what are the challenges. I will also talk about requirements for the graphics userspace and shortly present my favorite use case: displaying maps.
Structural equation modelingInformationElectronic visual displayBootingKernel (computing)SinePersonal digital assistantMobile WebMachine visionDigital signalPlanningMultiplication signShared memoryDaylight saving timeVideoconferencingBitMobile WebWebsiteKernel (computing)Bookmark (World Wide Web)Online helpPhysical systemInformationElectronic visual displayE-bookPlanningCASE <Informatik>Pairwise comparisonRegular graphMappingMachine visionNeuroinformatikSpacetimeBootingPersonal digital assistantSound effectQuicksortWhiteboardIncidence algebraType theoryPhase transitionEvent horizonSystem callAreaForm (programming)Endliche ModelltheorieDiagramComputer animation
Digital signalPlanningInformationSimilarity (geometry)File formatIdentical particlesSoftwareSineKernel (computing)BootingOperations researchBootingData recoveryLatent heatPhysical systemAreaProof theoryBitOperating systemData recoveryAsynchronous Transfer ModeVideo game consoleSimilarity (geometry)SoftwareBackupPlastikkarteSystem on a chipDifferent (Kate Ryan album)Personal identification numberBootingMass storageFile formatKernel (computing)Latent heatPhysical systemAndroid (robot)SpacetimeMixed realityQuicksortSystem callMessage passingLoginPhysical lawInternetworkingForm (programming)Server (computing)Basis <Mathematik>Computer animation
Video game consoleVideo game consoleBookmark (World Wide Web)CuboidSet (mathematics)Profil (magazine)Computer animation
Structural loadPartition (number theory)Kernel (computing)Address spaceBootingQuarkComputer-generated imageryComputer configurationData recoveryTouchscreenPartial derivativeSineMachine visionNetwork topologyDevice driverElectronic visual displayWebsiteCodeBootingKernel (computing)Electronic mailing listEmailDevice driverCovering spaceElectronic visual displayMusical ensembleParameter (computer programming)Patch (Unix)Address spaceOrder (biology)Real numberBitPartition (number theory)Combinational logicPhysical systemSoftware testingDuality (mathematics)Flow separationSeries (mathematics)Repository (publishing)Data storage deviceTouchscreenMereologyCodeComputer configurationNetwork topologyDataflowData recoveryMultiplication signBlock (periodic table)QuicksortRule of inferenceRow (database)Forcing (mathematics)Task (computing)Food energyPosition operatorBuildingWindowComputer clusterProcess (computing)Metropolitan area networkLattice (order)MiniDiscBus (computing)Electronic program guideComputer animation
Electronic visual displayImplementationDevice driverDigital rights managementRectangleWaveformKeyboard shortcutVirtual realityRead-only memoryKernel (computing)CodeEvent horizonAreaMeta elementSoftwareSineStandard deviationSource codeBookmark (World Wide Web)Multiplication signEvent horizon1 (number)Electronic visual displayCASE <Informatik>AdditionMachine visionFamilyMappingGame controllerAutomatic differentiationPressureThomas BayesCausalityMathematicsMusical ensembleForm (programming)AreaOffice suiteType theoryBasis <Mathematik>Coefficient of determinationInheritance (object-oriented programming)Sinc functionWeb 2.0Process (computing)Electric generatorWaveformComputer programmingImplementationAsynchronous Transfer ModeMechanism designTexture mappingOpen setLine (geometry)TrailRectangleFinite-state machineStandard deviationState of matterSpacetimeSemiconductor memoryResultantDevice driverCodePartition (number theory)E-Book-ReaderBitDistanceDistribution (mathematics)Flow separationElectronic mailing listStress (mechanics)PlastikkarteFirmwareInstallation artBootingDirectory serviceMagnetic stripe cardSoftwareDigital rights managementComputer animation
Standard deviationRaster graphicsTexture mappingBitState of matterForm (programming)MappingFreewareSimilarity (geometry)Physical systemElectronic visual displayVideoconferencingSystem call
Normed vector spaceEmailDigital rights managementDevice driverCursor (computers)Computer animation
TouchscreenMultiplication signAcoustic shadowGastropod shellElectronic visual displayRadical (chemistry)Computer animation
Group actionComputer animationMeeting/Interview
1 (number)Bookmark (World Wide Web)E-Book-ReaderTraffic reportingPlastikkartePhysical system2 (number)Line (geometry)ArmThomas BayesAreaMeeting/Interview
MappingStreaming mediaStandard deviationPhysical systemMaxima and minimaGoodness of fitMeeting/Interview
E-Book-ReaderArea1 (number)E-bookProjective planeClosed setInstance (computer science)Asynchronous Transfer ModeMeeting/Interview
E-Book-ReaderLine (geometry)Projective planeBitSoftwareSinc functionDevice driverKernel (computing)Patch (Unix)Dependent and independent variablesRule of inferenceChannel capacityShared memory1 (number)AreaMusical ensembleSource codeDemosceneMeeting/Interview
Android (robot)FirmwareShared memoryComputer hardware2 (number)Revision controlWhiteboardBootingDifferent (Kate Ryan album)Process (computing)Renewal theoryEvent horizonSinc functionSelf-organizationSpacetimeKernel (computing)NP-hardPoint (geometry)Traffic reportingFunctional (mathematics)CoprocessorNetwork topologySystem on a chipMeeting/Interview
1 (number)Touch typingDigital photographyMetropolitan area networkSign (mathematics)Observational studyMeeting/Interview
Computer animation
Transcript: English(auto-generated)
Hello everybody. Welcome. My name is Andreas Kymnade and I will talk about the road to what using regular Linux on ebook readers, especially with Kobo and Tulino readers.
First, I will tell you a bit about me, the motivation behind all that and
about the devices and then I will go from down to up system from bootloader to kernel and then the user space share engines and also show my favorite use case maps and how the display feels like and some videos. So if I'm not taking something I'm usually doing
I'm often doing some outdoor stuff. In summer vacation I usually doing long bicycle trips
often in sparsely populated areas in northern Europe. So I'm a bit on my own there. And of course I have some Linux mobile device with me.
I had a PDA for my times and also the moku.
So the motivation behind all my work is to solve my outdoor problems. So it can only be done in my spare time. The book readers I'm involved with the Kobo Clara HD. That's my first one and also when I
talked to someone, persuaded him to buy this shrine. We both thought they are equal
but that was not the case. We are not so equal. So I helped there with porting it and I found I used GTA 2. We used shine 2 and
imported also there and for comparison I get my hands on some
with defective EPA H2O and for some very condensing atmospheres I bought vision 5
for example like showing star maps. So what do I want basically? A bit of computer in the middle of nowhere. So I prefer to have little power consumption
instead of sick batteries and it should be daylight readable.
And having it with me should not prevent me from relaxing so much. It's powerful enough to look at for example the coronavirus site all the time.
That's a bit more relaxing and also a bigger display. It's helpful if you do some planning and not just going from simply going from A to B.
Some never planning and you can and also like I like to be able to have some information start with me
and of course doing some text work is always nice to be able to do that.
Contrary to the other devices I had before here I can find something similar kind of next corner and so I feel that my working experience is not lost if I
shoot another device so it's basically master one device master next one easily. So about the devices. There's a Tulino Allianz
consisting of mainly German bookstores to compete with Amazon Kindle and more easily the brand Tulino now belongs to a Curtain Cobo so
you find similar devices and they use an ordinary file format so
also the original software is of some of quite some use so you have often several pairs of almost identical devices it's just a different
pin compatible SoC so it's the IMX6 Solar Light and Tulino devices and the IMX6 SL and
Cobo devices so it almost identical was a pitfall for me so uh I mentioned that with the Cheyenne 3 and the Vandua software on the android
on the Tulino it's an android based system on a 3.0 based kernel there's also some quite uh
you have something a bit newer but this all asked to be replaced by something newer
so you can use ordinary stuff on it newer stuff so how can they easily can they be hacked or what can can you do with them
the non-water proof device have internal micro SD slots uh contains a whole operating system and a rootloader so can be replaced by something big
and you can have backups the waterproof device usually have eMMC it's a bit more tricky you can break it the space is a bit mislimited probably not you put not some Wikipedia on it
we all have some serial console easily accessible and also some fast boot and at least the Cobo bootloader allows to use USB mass storage too and there are some
some iMac specific recovery over USB if no bootloader is found like no micro SD in or in the MMC devices the device is zeroed where at least doesn't look look look like a bootloader
and you can enter this mode also by writing some magic values into some registers and then reset there was once an eight gigabyte card in here i've changed it replaced it
and also the console is clearly marked
um and interestingly next set there's another you are so you can attach your favorite uh profile to it if you want so how do i
debug these things i remove the back cover and buy some sleep cover for it and put a hole in there so i have some debug cover and i'm accessing this band using some poor pens here also there's
lutus adapter so i can access that wireless
yep so no wires attached there was something looking ugly so now let's talk about you would it's a good
has some special behavior the boot m and boot z commands are modified they load blobs from hidden partitions and also append things to the kernel arguments
also the keyword work right sometimes so and if no kernel is loaded yet using the special command they tend to overwrite things so if you are just loading the kernel from the desk you have to take care of it
to some tricks and for some reason a deep sleep on mainline kernels with uh to combination with tolino vendor you put it doesn't work
reliably for whatever reason there's a fork of the so so i decided to replace it by something new so downside is that putting the vendor systems is
um a bit more tricky because you need to load this hidden partitions and pass the addresses to the
kernel command line um i did not manage to put the tolino vendor kernel with it yet and well but contrary buttons and led is easily accessible for boot options
like booting the dual booting storage general systems or doing some recovery things and just a more easily configurable it can be tested using that usb recovery boot
so you can test a run before writing it to
to flash so you can avoid breaking your devices so now let's talk about the kernel what's already in there there are devices device trees for the devices i'm involved with
and the p-mic so for battery return block so um it's upstreamed
so for touch screen the touch screen for the shine 2 hd is upstream uh already for a longer time and the wi-fi um some some devices have
portcom based wi-fi the drivers upstream um
upstream so what's missing there are patches for the touch screen already on the mailing list that's an review and it covers a lot of devices
besides of the devices mentioned here it's also the um the remarkable two has it also the pine note and then there is
um the real tech ship there's only an order of three driver um so yes it's only a lot of three
driver seems to be no upstream work active well the biggest construction site is the display it's not mainlined at all
um it's not very right all but um i have a dm variant of the driver in preparation it's i think i will send out an ifc patch series soon to use the display you also need a
driver for some epd p-mix and the most recent code for this is online my github repository so you can check out and test
i have documented some quirks like how to convince fastboot to take that kernel and also
the individual status for several devices so now about the display what's uh
it's the most interesting part basically the verb flow is we need a list of non-overlapping damaged rectangles and pass them through this first was a convert them to gray since several ebook readers have rotated
displays we need to rotate it here um also on the six imx six slc is pxp does
waveform processing it's not very documented at least not without assigning ndas and stuff so
and then the things go go to the display controller and then to the display my drm driver does not use the display yet with the pxp yet because the implementation
main line is too limited it's too limited um and the epdc or this needs some
waveform a blob and let's see some waveform to operate so what are the challenges here you need to get these rectangles
um the dm rpi provides uh something which is already used for
for other devices like command mode dsi is this place so the user space is prepared for it basically
then the vendor uses frame buffer devices and there are then special io controls
uh that which need special programs to handle so if you use ordinary
programs you just you need to track damage events of x or either by patching the frame buffer driver or by running a special program on top of xorg and catch the damage
faster or you um whether there are mechanisms to um recognize changed memory areas but that usually results in full horizontal stripes to be refreshed
and especially that's uh rkf2 small rectangles um damage which uh distance
waveforms that something some data how the display is driven that's a lot of um a lot of mystery about it and
i have quite strange code in my driver to make make things work that's all a bit disgusting
um these waveforms they are stored in in partitions and i'm copying to the firmware directory and there it's loaded so now let's talk about distributions there's postmarket was um which
uh is supports the coop clara hd and the shine too um
so you clone your sd card install postmarket with on it when the first boot the waveform is copied from the hidden partition and then there's also a layer on top of open embedded for the
kubectl rhd there's a little stress there are some special uh also some special ipvr software solutions they are using the indoor channels more or less
and um so using all this special io control things
um so now to my favorite use case maps navigation i'm using some especially with big cable to attach power source and gfs receiver power source is my web bicycle hub dynamo we can also use the secondary uart
uh i had the former stuff already in place so i used that about maps the standard open street map style is hardly readable um some topographic maps from Swedish and German state
agencies seem to work surprisingly well there's also never so this is never this uh was m data and rooting in sunlight quite readable there's a usm standard
and i improved them a little bit by uh mark by exchanging uh street borders uh the gray with black but it's still a lot of work to do here and then contrary the map from the Swedish state
agency it's easily readable and under a nice license and um similar experience with not so free maps from Germany so now let's look at some videos
how it how the display looks like so i'm booting the system here and this is the shine 2
is my drm driver and now now it's starting you see the cursor you can move it okay now this is postmarket with xfce4
i'm unlocking my screen yes time you see some shadows of the
of former things on display and now i have my terminal now it's time for your
questions that's it yeah we are live andreas thank you very much for the talk
so we can get started with the questions we have quite a few starting from the first one
which of the ebook readers did you find the most pleasant to hack and on and why i mostly prefer the ebook readers this in micro sd card because i can easily back up the whole system and
um i cannot damage too much things so i can so less chances to break them and
my favorite is still the crowbar hd um and also there is a ones with some this is second c report are also nice for hacking you can attach something to it just more possibilities and also um getting a big
micro sd card you have seen in my pictures i have some 128 there that's um also helpful to keep also they're all in a system therefore while booting something
thank you are you aware of any work for mainlining linux on amazon kindle devices i i'm not aware of anything there um i well i personally don't i've not looked too much into
that um because that was too it feels to look to even support okay so next one
the maps um maps for navigation well it works well depends on the style so we will have a
a quite different experience so the standard osm style um it's hardly usable but never itself
it works and i've very successfully used it it works um so yes next one
h of c sorry i lost your video stream for a while i don't know if other people are seeing you so i'll i'll move on another question related to the previous one
which of the ebook readers do you find most pleasant to use and why if for all this auto stuff and stuff i would prefer the more waterproof ones but
that's clearly contradicts this um um the sakeability so i would just for just with it just about reading ebooks i would uh prefer the waterproof ones and
um so you don't need to be that careful this um uh this water and that uh things out i'm out
thank you then moving on did you think that oem will become more friendly towards uh false projects in the future
well um for the ebook readers at least they are you can ask for sources if and they respond but it does not feel so much about contribution so when i reported
canada was something it somehow got fixed after some year and there was no response but um but but i think if there is um more stuff here my main line especially the
epc driver um maybe but on the other hand it's often on the i think they are a bit compatibility issues there so they don't like to they may they must
start to adapt their software they have hard-coded paths to better to the battery capacity which includes the ship name and then patch the kernel so that regardless of what ship it really is
it's just renamed in the kernel so uh somehow um i've made up the next one thank you and the next next question since
kobo and tolino share almost identical hardware uh but the former on linux and the latter android is there any chance of firmware interoperability and cross-development
um well um if it's a about the different s ocs um well then even the other the new boot of the other device doesn't find as the mmc so it already stops there
um if the devices are similar um then if the devices are similar and have the same soc then there are some reports that
the kobo firmware boots on the tolino firmware and vice versa on the tolino device vice versa um with some uh limited functionality
hard affairs and fully working people have tried that but um if it's all this about the different s ocs then there's a problem that um probably either since um they then they
are different kind of versions um then the user space would have to be adapted and so it's not it's probably not so easy and shut and getting the vendor kernel on the other processor to work
well that will be a nightmare um since the old three three point zero kernels used on the sl devices are different i don't use device tree and these old kernels do not use do not
support the sl um processor so that will be a nightmare thank you so we have 30 seconds left enough for maybe one last question
how big are the en mcs on these devices once i get in touch with this it was eight gigabytes and
but one of the newest ones um i've seen something about 32 but eight gigabytes is common well on some older