|
|
View Full Version : ssh on Onyx Boox M92
peterx 01-03-2012, 06:11 PM Hi!
It would be great if we could run an ssh server on the Onyx Boox M92. I managed to compile dropbear statically linked and run it. There are two problems, though:
the kernel does not support the devpts filesystem, which is important for ssh login
the ssh server crashes very often (always after the first command), I do not know how this is caused, though
I have attached the binary (gzipped due to forum restrictions). You additionally need a host key (use your desktop to generate it) and you have to copy your public user key to /root/.ssh/authorized_keys (do not forget to create the directory).
the kernel does not support the devpts filesystem, which is important for ssh login
Hi! I cannot try this myself right now (my M92 is still in China :)) but it should be possible to kexec to a new kernel with with devpts support (if kexec is unsupported, it could be compiled as a module). I don't think there are sources for the last kernel on https://github.com/onyx-intl/ , so we should probably ask Onyx to put them online. I have little time right now, but I'd like to give this a try using qemu...
EDIT: The kernel is probably the stock one from Freescale, I'll give it a look.
peterx 01-05-2012, 06:46 PM Hi! I cannot try this myself right now (my M92 is still in China :)) but it should be possible to kexec to a new kernel with with devpts support (if kexec is unsupported, it could be compiled as a module). I don't think there are sources for the last kernel on https://github.com/onyx-intl/ , so we should probably ask Onyx to put them online. I have little time right now, but I'd like to give this a try using qemu...
EDIT: The kernel is probably the stock one from Freescale, I'll give it a look.
The kernel version is 2.6.35.3-998-ga1cd8a7 which at least seems to be common (there is something on the web about it).
Another thing to try is to use BSD style pseudo-terminals, i.e. create the files /dev/ptyp... and /dev/ttyp...
Good news! I managed to compile and use the serial gadget module, so it is now possibile to connect to the M92.
I'll try to polish the whole thing a bit and upload it in the evening.
Here we go. DISCLAIMER: you are on your own, so be careful. :D
Also, I tested this only on the original v1.6 firmware, but could (should?) run on the other versions.
Unzip the attached zip file somewhere in your M92 or SD card; you will find two directories, gserial and allow_root.
To login in your M92:
plug the usb cable;
answer "No" to the USB Connection popup;
run start_usb_serial.oar from the gserial directory;
your computer should detect a new serial port device. Use you favourite terminal emulator to connect to it.
login with user app, no password will be asked. (Be careful, even if you are not root, permission aren't really going to protect you.)
To logout press Control+D or type exit. If you want to login again, re-run the start_usb_serial.oar command.
When you are done, logout then execute stop_usb_serial.oar without disconnecting the USB cable. The usual popup will appear.
So now you want to login as root, don't you? ;)
Go to the allow_root directory and run root_pw_clear.oar; now you can login as root, no password asked. To restore everything as it was, run root_pw_restore.oar (will only work if you don't change the root password by hand, but if you can do that, I assume you can restore everything by yourself.) Also, does anybody knows what the original root password is?
Be careful and have fun!
EDIT: The archive was updated because I put the wrong module in there, as you can read below. Sorry guys!
Here we go.
Did not work for me:
insmod: cannot insert './g_serial.ko': Invalid module format (-1): Exec format error
And in the dmesg
g_serial: no symbol version for module_layout
How to make it work? Thanks.
peterx 02-12-2012, 10:27 AM Did not work for me:
insmod: cannot insert './g_serial.ko': Invalid module format (-1): Exec format error
And in the dmesg
g_serial: no symbol version for module_layout
How to make it work? Thanks.
I am getting the same error. Can we somehow force the kernel to load the module? Why does it work for you, FDD?
I am getting the same error. Can we somehow force the kernel to load the module? Why does it work for you, FDD?
Ok, I put the wrong module copy in the archive, I changed the orginal post, it should be fixed now. Give it a try!
peterx 02-14-2012, 03:27 PM Ok, I put the wrong module copy in the archive, I changed the orginal post, it should be fixed now. Give it a try!
Absolutely great! The USB console is so much faster than ssh over Wifi and, more important: It is absolutely stable. Thanks a lot for that module!
By the way, you can use the program called "cu" to connect to a serial console under linux:
cu -l /dev/ttyACM0 -s 115200
sergeyvl12 02-16-2012, 12:04 AM Good news! I managed to compile and use the serial gadget module, so it is now possibile to connect to the M92.
I'll try to polish the whole thing a bit and upload it in the evening.
FDD, thanks!
It runs on my A62. Could you compile g_ether.ko (please!)
P.S. I can't run Qt applications from 'app' user:
Qt for Embedded Linux data directory is not owned by user 16
sergeyvl12 02-16-2012, 11:36 AM Hi!
It would be great if we could run an ssh server on the Onyx Boox M92. I managed to compile dropbear statically linked and run it. There are two problems, though:
the kernel does not support the devpts filesystem, which is important for ssh login
the ssh server crashes very often (always after the first command), I do not know how this is caused, though
Try this. I use it with my Onyx Boox A62. It has never crashed (I used it for a month) and works quite fast.
http://pbsdk.vlasovsoft.net/files/onyx_dropbear.zip
BTW today I managed to turn on wifi without starting a web browser. I'll update this package with wifi scripts soon...
"the kernel does not support the devpts filesystem, which is important for ssh login"
Not so important ... we still can work using ssh -T ...
rkomar 02-16-2012, 03:56 PM Is it definitely the case that the kernel doesn't support devpts? On my Pocketbook device, the kernel supports it, but the OS wasn't set up for it. I got root access and fixed that by changing the permissions on /dev/ptmx and by adding the option gid=5 for devpts in /etc/fstab. Perhaps that's all that is necessary on the Onyx devices, as well.
sergeyvl12 02-17-2012, 04:37 AM Is it definitely the case that the kernel doesn't support devpts? On my Pocketbook device, the kernel supports it, but the OS wasn't set up for it. I got root access and fixed that by changing the permissions on /dev/ptmx and by adding the option gid=5 for devpts in /etc/fstab. Perhaps that's all that is necessary on the Onyx devices, as well.
ssh server (dropbear) on Onyx is started from root user and I login to Onyx as root, so it is not the question of permissions I think...
peterx 02-17-2012, 04:42 AM Is it definitely the case that the kernel doesn't support devpts? On my Pocketbook device, the kernel supports it, but the OS wasn't set up for it. I got root access and fixed that by changing the permissions on /dev/ptmx and by adding the option gid=5 for devpts in /etc/fstab. Perhaps that's all that is necessary on the Onyx devices, as well.
If you want to mount the devpts filesystem, the kernel responds with something like "unknown filesystem type devpts" and devpts is not available as a module.
FDD, thanks!
It runs on my A62. Could you compile g_ether.ko (please!)
P.S. I can't run Qt applications from 'app' user:
Qt for Embedded Linux data directory is not owned by user 16
Hello Sergey, I have very little time right now and compiling the module is a bit lengthy because I had to fix a few symbol versioning numbers by hand since a config file is not available. I will give this a try when I have some spare time (end of month). Otherwise you can compile it by yourself: the kernel is available here (http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX535&nodeId=018rH3ZrDR988D&fpsp=1&tab=Design_Tools_Tab), but its missing a couple of patches from Onyx, so I wouldn't boot that kernel as is ;); I extracted the symbols versions from an image of the kernel (I can PM that list if you want to give it a try), made a configuration as close as I could to the one Onyx used, build the full kernel image (otherwise you would not get versioning information in the modules and they won't load), build the module and finally hex-edited the module to change the versioning information that didn't match. A bit painful as you can see, so after I graduate I will definitely try and get a correct configuration to avoid the patching bit.
sergeyvl12 02-17-2012, 06:41 AM Hello Sergey, I have very little time right now and compiling the module is a bit lengthy because I had to fix a few symbol versioning numbers by hand since a config file is not available. I will give this a try when I have some spare time (end of month). Otherwise you can compile it by yourself: the kernel is available here (http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX535&nodeId=018rH3ZrDR988D&fpsp=1&tab=Design_Tools_Tab), but its missing a couple of patches from Onyx, so I wouldn't boot that kernel as is ;); I extracted the symbols versions from an image of the kernel (I can PM that list if you want to give it a try), made a configuration as close as I could to the one Onyx used, build the full kernel image (otherwise you would not get versioning information in the modules and they won't load), build the module and finally hex-edited the module to change the versioning information that didn't match. A bit painful as you can see, so after I graduate I will definitely try and get a correct configuration to avoid the patching bit.
Hi
I tried to build the module yesterday.
But my module isn't loaded (wrong format).
Onyx kernel module signature:
vermagic: 2.6.35.3-998-ga1cd8a7 preempt mod_unload modversions ARMv7
My kernel module signature:
vermagic: 2.6.35.3-899-g9b1a262 mod_unload modversions ARMv5
So, as far as I understand, I need 3 things:
1. Turn on ARMv7
2. Turn on preempt
3. Manually correct 2.6.35.3-899-g9b1a262 -> 2.6.35.3-998-ga1cd8a7
right?
My kernel module signature:
vermagic: 2.6.35.3-899-g9b1a262 mod_unload modversions ARMv5
IIRC this is from a different BSP, L2.6.35_11.04.01_ER.
rkomar 02-17-2012, 02:40 PM If you want to mount the devpts filesystem, the kernel responds with something like "unknown filesystem type devpts" and devpts is not available as a module.
Too bad, and so senseless to keep it out of the kernel.
kodomo 02-24-2012, 10:08 AM Onyx kernel module signature:
vermagic: 2.6.35.3-998-ga1cd8a7 preempt mod_unload modversions ARMv7
My kernel module signature:
vermagic: 2.6.35.3-899-g9b1a262 mod_unload modversions ARMv5
So, as far as I understand, I need 3 things:
1. Turn on ARMv7
2. Turn on preempt
3. Manually correct 2.6.35.3-899-g9b1a262 -> 2.6.35.3-998-ga1cd8a7
Out of curiosity (since I've been pondering compiling kernel modules in the future):
Are we talking about a plain vanilla 2.6.35.3 kernel tree here, or are there additional patches? (The http://opensource.onyx-international.com/ only contains an older 2.6.26)
Are all drivers in the mainline kernel, or are there binary modules that would stop someone from switching to a newer kernel?
Last, but not least: Does the current kernel support kexec?
Cheers!
anthrax63 02-25-2012, 10:04 AM FDD, сould you give me a kernel config file please?
I've enabled ARMv7, preempt and manually corrected local version, but i've got error "Invalid module format (-1): Exec format error
" and "no symbol version for module_layout" message in dmesg if i try to run it on onyx.
I think my problem is in config file, but i do not know which parameter should i set to solve problem...
kodomo 02-26-2012, 05:18 PM I'd be interested in the .config as well.
Moreover a request:
Could someone who's successfully compiled software for the M92 write a short summary/primer on using the SDK under http://wiki.mobileread.com/wiki/Boox_M92_software_development ?
I'm currently doing my first steps and am running into probably silly problems (currently cmake complains about not knowing ENABLE_QT when I try to compile a modified calculator version as a first test)
Maybe the steps to compile ones first program amongst those available in the std. repositories?
Even stuff that might be trivial to you would help newbies to the sdk :)
Cheers and (hoping ;) ) thx in advance!
peterx 02-27-2012, 03:34 AM I'd be interested in the .config as well.
Moreover a request:
Could someone who's successfully compiled software for the M92 write a short summary/primer on using the SDK under http://wiki.mobileread.com/wiki/Boox_M92_software_development ?
I'm currently doing my first steps and am running into probably silly problems (currently cmake complains about not knowing ENABLE_QT when I try to compile a modified calculator version as a first test)
Maybe the steps to compile ones first program amongst those available in the std. repositories?
Even stuff that might be trivial to you would help newbies to the sdk :)
Cheers and (hoping ;) ) thx in advance!
You are right, this would help a lot. Actually I also ran into many small difficulties and so I planned to document how to compile software for the M92. But afterwards, these difficulties seemed so silly to not being worth mentioned, so I abandoned my plans. Let me try to write something down and let us see if it works for you.
I'd be interested in the .config as well.
I handed out a copy of the one I used to a few users, but it still not quite ok. As soon as I get a fully working configuration I'll publish it and let you know.
kodomo 02-27-2012, 07:33 AM You are right, this would help a lot. Actually I also ran into many small difficulties and so I planned to document how to compile software for the M92. But afterwards, these difficulties seemed so silly to not being worth mentioned, so I abandoned my plans. Let me try to write something down and let us see if it works for you.
Cool! Thank you a lot :)
I'm currently trying to compile the SDK itself and run into the problem that ld complains about undefined references linking stardict_base for dictionary_test . It seems like libzip were missing (gzopen, gzread, gzclose missing). Did you run into this problem, too?
peterx 02-27-2012, 03:21 PM Cool! Thank you a lot :)
I'm currently trying to compile the SDK itself and run into the problem that ld complains about undefined references linking stardict_base for dictionary_test . It seems like libzip were missing (gzopen, gzread, gzclose missing). Did you run into this problem, too?
You need to compile the static libraries. I updated the information on the wiki.
kodomo 02-27-2012, 03:54 PM I handed out a copy of the one I used to a few users, but it still not quite ok. As soon as I get a fully working configuration I'll publish it and let you know.
That would be nice :)
A (maybe dumb) question w.r.t. the missing patches you mentioned in a previous post: Doesn't the GPL force them to release them?
Maybe it would make sense to ask them or add a respective item to the M92 wishlist?
@peterx: thx, I'll try :)
kodomo 02-27-2012, 04:12 PM You need to compile the static libraries. I updated the information on the wiki.
Actually, I don't think this is my problem:
rake -f Rakefile.imx508 build:x86:static <- ran fine
make <- there's no Makefile in the SDK top directory - so it naturally failed
rake -f Rakefile.imx508 build:arm:static <- produced exactly the same error I got before:
Linking CXX executable ../../../unittests/dictionary_test
CMakeFiles/dictionary_test.dir/qstardict_plugin/stardict_base.cpp.o: In function `stardict::WordlistIndex::load(QString const&, unsigned long, unsigned long)':
stardict_base.cpp:(.text+0x2350): undefined reference to `gzopen'
stardict_base.cpp:(.text+0x23e4): undefined reference to `gzread'
stardict_base.cpp:(.text+0x23f4): undefined reference to `gzclose'
collect2: ld returned 1 exit status
make[2]: *** [unittests/dictionary_test] Error 1
make[1]: *** [code/src/dictionary/CMakeFiles/dictionary_test.dir/all] Error 2
make: *** [all] Error 2
rake aborted!
Before running these, I unpacked the two toolchain archives to / (effectively placing the stuff into /opt/onyx),
set up the environment variables,
and checked out the booxsdk git.
The commands were executed in the top directory of the downloaded git repository.
Update: The missing library however seems to be libz... and is present in the /opt/onyx/... subdirectories... but apparently was not found
However, after starting over with a clean git checkout, the build:x86:static doesn't run through anymore, but complains about missing assembler instructions... I have a feeling that it's using the wrong toolchain right now... I guess I'd better call it a day ;)
kodomo 02-28-2012, 03:55 AM A
rake -f Rakefile.imx508 build:arm:static <- produced exactly the same error I got before:
Linking CXX executable ../../../unittests/dictionary_test
CMakeFiles/dictionary_test.dir/qstardict_plugin/stardict_base.cpp.o: In function `stardict::WordlistIndex::load(QString const&, unsigned long, unsigned long)':
stardict_base.cpp:(.text+0x2350): undefined reference to `gzopen'
stardict_base.cpp:(.text+0x23e4): undefined reference to `gzread'
stardict_base.cpp:(.text+0x23f4): undefined reference to `gzclose'
collect2: ld returned 1 exit status
make[2]: *** [unittests/dictionary_test] Error 1
make[1]: *** [code/src/dictionary/CMakeFiles/dictionary_test.dir/all] Error 2
make: *** [all] Error 2
rake aborted!
libz was missing in code/src/dictionary/CMakeLists.txt (patch attached).
now build:arm:static runs fine... next thing will be to check what's wrong with build:x86:static
I'll update the wiki...
peterx 02-28-2012, 04:11 AM Actually, I don't think this is my problem:
rake -f Rakefile.imx508 build:x86:static <- ran fine
make <- there's no Makefile in the SDK top directory - so it naturally failed
rake -f Rakefile.imx508 build:arm:static <- produced exactly the same error
Sorry, I think I misunderstood you. You are right, rake calls make, so make is not necessary. After rake -f Rakefile.imx508 build:x86:static, the static x86 libraries should be in build/x86/libs. Copy them to /usr/local/lib and you can compile and run applications on your x86 computer.
It worked for me with this patch (I'll also send it to onyx):
diff --git a/code/src/dictionary/CMakeLists.txt b/code/src/dictionary/CMakeLists.txt
index ad2398a..326c928 100644
--- a/code/src/dictionary/CMakeLists.txt
+++ b/code/src/dictionary/CMakeLists.txt
@@ -32,7 +32,7 @@ QT4_ADD_RESOURCES(dictionary_ui_res ${resource_srcs})
ADD_LIBRARY(dictionary ${SRCS} ${MOC_SRCS} ${dictionary_ui_res})
-TARGET_LINK_LIBRARIES(dictionary onyx_ui ${ADD_LIB})
+TARGET_LINK_LIBRARIES(dictionary onyx_ui ${ADD_LIB} z)
########### Unit Tests #####################
INCLUDE_DIRECTORIES(.)
@@ -40,6 +40,6 @@ ADD_EXECUTABLE(dictionary_test unittests/libdict_test.cpp ${SRCS} ${MOC_SRCS})
TARGET_LINK_LIBRARIES(dictionary_test onyx_sys onyx_screen
onyx_ui dictionary tts sound
${QT_LIBRARIES}
- ${ADD_LIB})
+ ${ADD_LIB} z)
SET_TARGET_PROPERTIES(dictionary_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TEST_OUTPUT_PATH})
kodomo 02-28-2012, 04:26 AM This was indeed my problem with the arm build (see above ;) )
My current problem is with build:x86:static . g++ is unhappy with some assembler code in onyx_wireless... given that it's unlikely that I will ever need that on the x86 platform, I'm wondering whether I should just disable it...
[ 1%] Building CXX object code/src/wireless/CMakeFiles/onyx_wireless.dir/ap_item.cpp.o
cd /home/grsch/arbeit/home/boox_m92/booxsdk/build/x86/code/src/wireless && /usr/bin/g++ -DSHARE_ROOT=\"/usr/share\" -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DQT_SCRIPT_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SCRIPT_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/home/grsch/arbeit/home/boox_m92/booxsdk/third_party/gtest/include -I/home/grsch/arbeit/home/boox_m92/booxsdk/code/include -I/opt/onyx/arm/include -I/opt/onyx/arm/include/QtScript -I/opt/onyx/arm/include/QtWebKit -I/opt/onyx/arm/include/QtGui -I/opt/onyx/arm/include/QtTest -I/opt/onyx/arm/include/QtDBus -I/opt/onyx/arm/include/QtXml -I/opt/onyx/arm/include/QtSql -I/opt/onyx/arm/include/QtNetwork -I/opt/onyx/arm/include/QtCore -Wall -Werror -o CMakeFiles/onyx_wireless.dir/ap_item.cpp.o -c /home/grsch/arbeit/home/boox_m92/booxsdk/code/src/wireless/ap_item.cpp
/opt/onyx/arm/include/QtCore/qatomic_arm.h: Assembler messages:
/opt/onyx/arm/include/QtCore/qatomic_arm.h:131: Error: no such instruction: `swpb %bl,%al,[%rdx]'
make[2]: *** [code/src/wireless/CMakeFiles/onyx_wireless.dir/dialup_dialog.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
peterx 02-28-2012, 05:00 AM When I compile the SDK for x86, the qt header files from my system are used, not those from /opt/onyx/include. Do you have the qt header files installed? It could also be that you have some environment variable defined that tells the build script that they should use the arm headers.
kodomo 02-29-2012, 06:49 AM When I compile the SDK for x86, the qt header files from my system are used, not those from /opt/onyx/include. Do you have the qt header files installed? It could also be that you have some environment variable defined that tells the build script that they should use the arm headers.
libqt4-dev is installed.
No special environment variables are set.
Nonetheless, the arm headers are explicitely included:
/usr/bin/cmake -E cmake_progress_report /home/grsch/arbeit/home/boox_m92/booxsdk/build/x86/CMakeFiles
[ 2%] Building CXX object code/src/wireless/CMakeFiles/onyx_wireless.dir/ap_item.cpp.o
cd /home/grsch/arbeit/home/boox_m92/booxsdk/build/x86/code/src/wireless && /usr/bin/g++ -DSHARE_ROOT=\"/usr/share\" -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DQT_SCRIPT_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SCRIPT_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_DBUS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/home/grsch/arbeit/home/boox_m92/booxsdk/third_party/gtest/include -I/home/grsch/arbeit/home/boox_m92/booxsdk/code/include -I/opt/onyx/arm/include -I/opt/onyx/arm/include/QtScript -I/opt/onyx/arm/include/QtWebKit -I/opt/onyx/arm/include/QtGui -I/opt/onyx/arm/include/QtTest -I/opt/onyx/arm/include/QtDBus -I/opt/onyx/arm/include/QtXml -I/opt/onyx/arm/include/QtSql -I/opt/onyx/arm/include/QtNetwork -I/opt/onyx/arm/include/QtCore -Wall -Werror -o CMakeFiles/onyx_wireless.dir/ap_item.cpp.o -c /home/grsch/arbeit/home/boox_m92/booxsdk/code/src/wireless/ap_item.cpp
There must be some problem with the make files (didn't find the source of the problem, yet)... could it be that they updated the repository between your checkout and mine?
kodomo 03-04-2012, 05:29 AM Starting with a fresh checkout and using
build:static instead of build:arm/x86:static it finally worked.
Furthermore, I managed to compile some of the packages in boox-opensource , though not all:
dictionary_tool was missing the libz statement again (patch attached)
cr3, djvu_reader, fbreader_onyx, feed_reader, music_player, rss_reader failed to compile for X86 (not yet tried for ARM) for diverse reasons (not yet tried to debug).
feed_reader seems to be missing a file (feed_action.cpp)
I've updated the wiki on how to compile boox-opensource packages.
Cheers.
kodomo 03-06-2012, 04:42 AM So it turned out that music_player was merely missing some -dev packages on the x86 platform.
feed_reader is indeed missing the feed_action.h header file.
cr3, djvu_reader, fbreader_onyx, and rss_reader have portability issues compiling for x86 on amd64 machines (e.g., casting pointers to int).
djvu_reader and rss_reader compile for arm on amd64, and for x86 in 32bit environments.
fbreader compiles for x86 in 32bit environments, if a not needed cryptopenssl lib inclusion is removed from its CMakeLists.txt (patch attached) - but arm toolchain & sdk are lacking the needed libcrypto .
cr3 yields linker errors (several 'multiple definition' errors, such as this one)
./../../../libs/libonyx_ui.a(number_dialog.cpp.o): In function `ui::NumberDialog::keyPressEvent(QKeyEvent*)':
number_dialog.cpp:(.text+0x0): multiple definition of `ui::NumberDialog::keyPressEvent(QKeyEvent*)'
All in all, the 32bit environment tools also seem much more forgiving, as the libz (missing in some CMakeLists.txt) was found even without the applied patches.
Hence what we need from Onyx seems
The feed_action.h header file
The crypto lib in the SDK (prebuilt and/or source)
The kernel sources and patches
A solution to the cr3 linker issue (anyone?)
kodomo 03-06-2012, 10:03 AM ...wrote a support ticket requesting the missing resources (but didn't get feedback that submission actually worked)... hope they will react :)
Cheers!
Koudijs 03-06-2012, 02:45 PM Hence what we need from Onyx seems
The feed_action.h header file
The crypto lib in the SDK (prebuilt and/or source)
The kernel sources and patches
A solution to the cr3 linker issue (anyone?)
libcrypto is provided by the openssl package, you can download the sources here (http://opensource.onyx-international.com/).
kodomo 03-08-2012, 02:13 PM libcrypto is provided by the openssl package, you can download the sources here (http://opensource.onyx-international.com/).
Cool - an OpenBoox devel. stumbled across our thread ;)
Welcome, Koudijs!
Thx for the link (though I'd still prefer them adding it to the regular sdk package :P )
Btw., since you're already 'here' - do you happen have a pointer to firmware/software update (procedure/safety) documentation? :)
Do the update routines reside in the bootloader? Initrd? Another partition? Or does one have to fear bricking a device by replacing files in the regular file system?
And are there plans to extend OpenBoox support to the M92? :P
Btw., since you're already 'here' - do you happen have a pointer to firmware/software update (procedure/safety) documentation? :)
Do the update routines reside in the bootloader? Initrd? Another partition? Or does one have to fear bricking a device by replacing files in the regular file system?
You could give a look at this post (http://www.mobileread.com/forums/showthread.php?p=1906177#post1906177) of mine.
I didn't mention there that the bootloader runs the update kernel+initramfs only if you hold down the "ok" button (if there is no update file, nothing happens, except displaying messages).
Just replacing files in the root filesystem will do no permanent harm. A bad flash can brick the device, since the initramfs where most of the updating procedure is gets updated as well, leaving you unable to update again; however that update is done last, so you should be able to log in the M92 and fix everything by hands.
Also as long as the bootloader is good you should be able to flash a good image manually, but I don't know how to connect to the serial port (no obvious serial/jtag pin header).
Hope this helps!
tuxor 03-09-2012, 04:09 PM When connecting to my M92 via g_serial over USB everything works fine. But as soon as I log out by typing "exit" in the remote console, I have to remove the "g_serial.ko" module on M92 and insmod it again in order to login again. Is this intended? Any way around this?
When connecting to my M92 via g_serial over USB everything works fine. But as soon as I log out by typing "exit" in the remote console, I have to remove the "g_serial.ko" module on M92 and insmod it again in order to login again. Is this intended? Any way around this?
There should be no need to remove and insert back the module, just run again the start script, because putty exec's the shell, so it is not running anymore when you logout. I didn't feel confortable running putty in a background loop, let alone changing the inittab, because having it running could prevent you from removing the module and I thought it was simpler this way. IMHO a script that runs getty, sleeps 5 seconds and loops is safe, as long as you kill it when you don't need the serial anymore. :)
tuxor 03-09-2012, 05:06 PM Okay, your solution sounds very sensible :) Thanks for the explanation!
kodomo 03-10-2012, 03:33 AM You could give a look at this post (http://www.mobileread.com/forums/showthread.php?p=1906177#post1906177) of mine.
I didn't mention there that the bootloader runs the update kernel+initramfs only if you hold down the "ok" button (if there is no update file, nothing happens, except displaying messages).
Just replacing files in the root filesystem will do no permanent harm. A bad flash can brick the device, since the initramfs where most of the updating procedure is gets updated as well, leaving you unable to update again; however that update is done last, so you should be able to log in the M92 and fix everything by hands.
Also as long as the bootloader is good you should be able to flash a good image manually, but I don't know how to connect to the serial port (no obvious serial/jtag pin header).
Hope this helps!
Does - thx (linked to wiki pointers section).
I'm still trying to assess the situation (though I don't have much time these days ;) ), finding out what you can/cannot do and collecting infos/resources to play around with the device.
Mentioning jtag: Did you actually disassemble the device? It might interest some folks to know about the specific hardware built into the product (e.g., the wacom tablet type to facilitate a search for alternative styli).
Unfortunately, I didn't get any response from Onyx on my ticket requesting kernel sources/patches yet... I'm wondering whether something went wrong submitting the ticket, or whether they're ignoring it... has anyone else tried?
kodomo 03-23-2012, 08:05 PM I handed out a copy of the one I used to a few users, but it still not quite ok. As soon as I get a fully working configuration I'll publish it and let you know.
Hi FDD.
How are things going with the kernel config?
Can you please add a section to the Devel Wiki page w.r.t. kernel module compilation? :)
If I interpret this post https://lists.ubuntu.com/archives/kernel-team/2009-July/006417.html correctly, there's a considerable chance that the M92 USB controller may support host mode... and that would open a new world of possibilities (bluetooth/keyboard support for text input, e.g. :D )
I hope that Onyx will release the sources and patches in accordance to the GPL, though... It'd be a shame to have to involve the FSF :-| .
btw.: I'm a little surprised to see bluetooth.ko included with the std. fw image... it seems to be used by the wifi driver... does anyone know why? Does the atheros chip support bluetooth, or is it only this bt coexistence interface?
kodomo 03-24-2012, 11:21 AM fbreader compiles for x86 in 32bit environments, if a not needed cryptopenssl lib inclusion is removed from its CMakeLists.txt (patch attached) - but arm toolchain & sdk are lacking the needed libcrypto .
cr3 yields linker errors (several 'multiple definition' errors, such as this one)
./../../../libs/libonyx_ui.a(number_dialog.cpp.o): In function `ui::NumberDialog::keyPressEvent(QKeyEvent*)':
number_dialog.cpp:(.text+0x0): multiple definition of `ui::NumberDialog::keyPressEvent(QKeyEvent*)'
Hence what we need from Onyx seems
The feed_action.h header file
The crypto lib in the SDK (prebuilt and/or source)
The kernel sources and patches
A solution to the cr3 linker issue (anyone?)
Compiling openssl and placing the resulting 'lib' and 'include' directory content into respective /opt/onyx/arm/ subdirectories allowed compilation of fbreader.
Attached, you'll find a patchfile modifying the Makefile to make it easy to use the toolchain.
To use it, download and unpack the openssl archive, patch the Makefile, set your environment variables (as described in the Development wiki), and call
export INSTALLTOP=`pwd`/build/arm ; export TC_PREFIX=arm-linux- ; make install
The binaries will then be put into ./build/arm .
Copy the contents of the include and lib directories into your onyx sdk environment (presumably under /opt/onyx/arm - mind that there's already an include/openssl directory).
fbreader should compile thereafter (mind to remove the other library dependency).
I'll update the Devel wiki to that respect.
Cheers!
Update: initial post was missing a '-' after arm-linux
kodomo 03-24-2012, 04:05 PM The problem with cr3 seems to be a conflicting UI API.
I didn't have time to really look into it, but it seems to me that in
cr3/cr3_onyx/lcl_ui/number_dialog.h
there's a definition for
ui::NumberDialog::NumberDialog(QWidget *parent, QString title)
used in
cr3/cr3_onyx/lcl_ui/line_edit.cpp
( NumberDialog dialog(0, name); )
conflicting with the definition of
ui::NumberDialog::NumberDialog(QWidget *parent);
in
code/include/onyx/ui/number_dialog.h
(which seems more recent)
I therefore assume that Onyx likely is _not_ providing the current firmware versions of their source :( .
These seem to be incompatible versions.
kodomo 03-29-2012, 11:19 AM there's been an update of git repositories... can someone check on what they've added? (I'm writing my dissertation, and time gets scarcer every day for now ;) )
kodomo 03-30-2012, 11:00 AM If you'd like to hack the M92, please join this thread:
http://www.mobileread.com/forums/showpost.php?p=2023450
ebookmania 04-03-2012, 07:43 PM Are there any packages we can remove to speed up the response time
of Onyx M92 ?
Are there any packages we can remove to speed up the response time
of Onyx M92 ?
The M92 is quite responsitive, if you think about how fast the scribbling reacts. It is sluggish, for example when you open a menu, because of a few bad (IMHO) design choices... it is not as simple as "remove some dead weight", it takes a rewrite of quite some UI code. It can eventually be done, but I'm not holding my breath right now :)
|