Forum switched to read-only as of 2020/06/01
|Latest product reviews|
i succes fully build kernel for my tablet rk2918 ,, it run and boot to homes screeen ,, but touch screen not touch and not respon ,, if i switch to original kernel it works,,
i know my touchscreen driver is bu21020 ,, but not rule to make target if i select it in config
i see in driver its only bu21020.h and not have file bu21020.c and bu21020.o ,, can anyone help me
i already see in other sources its no help , it only file header or .h
board = m723hr
touch deriver = bu21020
resistive dual touch ,, kompatibel with arnova 7e g2 and nextboox7 resistive
if i switch to original kernel it works,,
What is the version number of your original kernel? Can you run Android 4.0 Ice Cream Sandwich (or higher) with that original kernel?
I am also looking for the bu21020-ts driver, so that I can get Android 4.0 on my Arnova 8 G2 DT. But if you have an original kernel that works with ICS, I would like to try that instead. Can you upload it somewhere or post a link?
To maybe help with your question, so far I have found the following topics that mention compiling with bu21020 support:
The first one has a link to 3.0.8 sources with added drivers but there's only a .h file in /drivers/input/touchscreen/.
There are a lot of 2.6.x kernel sources that include a 21020 driver:
The download for that is down, but can be found here: http://pond-weed.com/wmt8650/index.html
Maybe there were difficult compatibility problems with the 3.0 kernels and that's why we never saw Android 4.0 for our tablets with resistive touchscreen even though their capacitive brothers got upgrades.
I also checked the Archos GPL release AN9G3_AN7DG3_AN7DG3ST_AN7DG3STCP_A10BG3_A10BG3DT_GPL_release.tgz since maybe the A10BG3DT has the same touchscreen, but that did not contain an explicit 21020 driver. It did however contain some very interesting backup files which they forgot to delete, that contain lots of references to 21020. E.g. "/kernel/drivers/input/touchscreen/rohm_bu.c bak_0220" seems to be a BU21023 driver that they made by modifying the BU21020 driver, and some BU21020 code is just commented out.
don't know if this source helps:
Thanks for your reply. It's another driver for 2.6 (Android 2.3) but what we need is 3.0.8 so we can run Android 4.0 on our resistive tablets. Do you perhaps know if there's any chance that a 2.6 driver would just work under 3.0.8?
I now know that bu21020-TS has been made to work before for the Oma7144 ROM:
<5>[ 0.000000] Linux version 3.0.8+ (mgq@ubuntu) (gcc version 4.4.0 (GCC) ) #672 PREEMPT Fri Apr 13 18:10:20 CST 2012
<6>[ 5.947222] input: bu21020-ts as /devices/platform/rk29_i2c.2/i2c-2/2-005c/input/input1
Specs Advan Vandroid T2i: 7", 800*480 (16:9), resistive touch 2p, bu21020-TS, RTL8188 WLAN, MMA7660 Sensor, RT5631 Audio, GC0308 Cam, HYM8563 Clock
Unfortunately my device (AR8G2DT) has slightly different specs: 800*600, actual physical buttons, bu21020-TS, Broadcom 4319 WLAN, MMA7760 sensors, RT5631 audio, GC0307 Cam, HYM8563 clock.
Still I decided trying that kernel would be worth a try. I couldn't actually find any download link for a kernel in that thread, but I found one here: http://blog.de-angel.net/jelly-bean-t2t2ct2it2ci-rockchip-rk/
Currently not much luck with it. I'm using RKAndroidTool v1.29 to try all sort of different combinations between that OMA 4.1 rom (with T2i kernel) and the Kasty 4.0 rom (with kernel for Arnova 8 G2 capacitive). Usually they do boot, but I haven't gotten the touchscreen to work so far. Problems of the Kasty kernel are swapping of RGB channels (Android4-blue now looks golden yellow, red now looks blue) and non-functional touchscreen. Problems of the T2i kernel are Wifi, screen resolution and (surprisingly) non-functional touchscreen.
Hence I would love to just replicate the kernel compilation that Oma7144 posted a dmesg from in that xda topic, but the source is nowhere to be found. At least not a source that contains the bu21020-TS driver. Apparently it's a homebrew kernel by Astralix & fr3ts0n and the Github should be here: https://github.com/crewrktablets/rk29_kernel_308
But no sources for bu21020-TS, only 21023. Should I try just using the drivers from 2.6 sourcedumps? Maybe I misunderstood or missed some other part of information? Any help is appreciated, and of course if I get results I will share them here.
as far as I know this is not a custom kernel of our crew. Oma posted a model fix for this tablet, but this is not a kernel.
The mentioned kernel of him is from our kernel archive, a collection of stock kernel.
I have looked thru our own source archive, but not found a bu21020 driver in it.
If you have compiled successfully a custom kernel that work (only touch does not), you should try to integrate the 2.6 driver into your 3.0.8 source and compile it.
What kernel source did you use?
Thank you, that explains a lot. I now understand that the dmesg that Oma posted comes from a stock 3.0.8 kernel with bu21020-ts rather than from a homebrew one. I assume it's probably the very same Advan Vandroid T2i kernel I've been trying to use (will confirm this later). So apparently some guys at Advan put in the effort to make a 3.0.8 kernel for their device while Archos/Arnova and all the other bu21020-using companies couldn't be bothered.
That means I'm out of luck because that Vandroid kernel just doesn't have the right resolution and Wifi drivers for my device and there's no source available to recompile it. I could try demanding GPL sources from Advan but in my experience most of the guys who coded that stuff in 2012 will have moved on to different companies and then they just tell you they don't have a clue where the files are. I also sent a GPL request directly to ROHM about a week ago but no reply so far.
So I guess that means my best option is as you say, (1) picking a set of 3.0.8 sources that work well with my device, apart from the touchscreen; (2) adapting the 2.6 bu21020 driver to that kernel. This will take some time but I'll give it a go. Of course any advice is appreciated and I might be back here with questions :).
Perhaps rofikcoga can upload his sources, or as an alternative you could try our Odys NEO X8 sources with your tablet.
If you like you could try our custom kernel at http://crewrktablets.arctablet.com/?p=2575
You said your device has 800x600 and this could match the Neo X8 kernel. First step would be to find a kernel that has a basic boot and gives you a correct picture. After that you can try to get the rest up and running. You can find all our sources in our own gitlab (https://crewrktablets.arctablet.com:8081/public/projects) or at github.
Thanks Jochen, I'll look into it. Too bad the weekend is almost over already.
The Neo X8 kernel works with the correct resolution and colours, but no Wifi, sound, touch or button functionality so far (which also means I can't operate CWM). But I assume that's simply because the X8 kernel only has drivers for X8 hardware compiled in it.
So I guess I'll have to arrange the other drivers when compiling my own kernel first.
Unfortunately I must say it's also a lot slower than with the kernel from Kasty 4.0.
One thing I forgot to mention: the Arnova 8 G2 DT still works fine with kernels with the wrong resolution, it just has a smaller screen (or a periodic boundary).
I found /arch/arm/configs/odys-neox8_defconfig in the project android_kernel_odys_neox_3.0.8 at your gitlab, so I assume the Neo X8 kernel you linked to was compiled from there?
I think the kernel is slower because you have many error messages in the dmesg.
This kernel build is one of the fastest RK2918 kernels ever build, round about 30% faster than stock. But it's normal that you see a slow down if hardware does not match, because the missing drivers cause a flood of errors.
First good news is, the lcd driver matches your tablet adn this is a starting point.
Did you ever compile a RK kernel?
Nope, mainly x86 kernels and those seem a lot less hassle with driver configuration. I have done some sunxi compiling before though, mainly Allwinner A10.
It makes sense that the slowdown is a flood of error messages. I already saw that most of the drivers are available in the repo (great work guys :)) so I assume if I enable the correct drivers during the pre-compile configuration, that should get WLAN and sound working.
The hardware buttons (volume +/- etc.) might not be that easy though? On any custom kernel I tried so far, those always stopped working. After reading through the linux-rockchip Wiki my best guess is that these buttons might be GPIO devices somewhere in https://crewrktablets.arctablet.com:8081/crewrktablets/android_kernel_odys_neox_3-0-8/tree/master/arch/arm/mach-rk29 .
Looks like the russkies are frustrated too with this bu21020 business:
Here the dog and buried - * .c only one driver, which by default, the rest left only headers that-well,
as they say we seek.
bu21020 tear driver of some 2.3. *, but there he is registered on ISP, and I was on the I2C necessary, seek further. NB! If someone saw / knew green bodies driver for resistive stitch, though not bu21020, post a link or driver yourself (and makefile from drivers / input / touchscreen), please.
Apparently this guy was desperate enough that he wanted to adapt the driver for a different resistive TS to work with bu21020?
Okay.. so first step would be that you cross compile the X8 kernel by yourself.
Second step.. the buttons.. look at https://crewrktablets.arctablet.com:8081/crewrktablets/android_kernel_odys_neox_3-0-8/blob/master/arch/arm/mach-rk29/board-rk29sdk-key.c
So I've successfully compiled a kernel using the odys-neox8 defconfig from your repository. Now I've modified this config to use the bcm4319 SDIO driver instead of rtl8192c. Unfortunately the bcm4319 driver won't compile as it is:
drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c: In function ‘wifi_chip_read’:
drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c:26:5: warning: ‘count’ is used uninitialized in this function [-Wuninitialized]
CC [M] net/sunrpc/sysctl.o
drivers/net/wireless/bcm4319/dhd_linux.c: In function ‘rockchip_wifi_exit_module’:
drivers/net/wireless/bcm4319/dhd_linux.c:2542:2: error: implicit declaration of function ‘bcm4329_power_save_exit’ [-Werror=implicit-function-declaration]
drivers/net/wireless/bcm4319/dhd_linux.c: In function ‘rockchip_wifi_init_module’:
drivers/net/wireless/bcm4319/dhd_linux.c:2613:2: error: implicit declaration of function ‘bcm4329_power_save_init’ [-Werror=implicit-function-declaration]
cc1: all warnings being treated as errors
make: *** [drivers/net/wireless/bcm4319/dhd_linux.o] Error 1
make: *** [drivers/net/wireless/bcm4319] Error 2
make: *** [drivers/net/wireless] Error 2
make: *** [drivers/net] Error 2
I was naively using the standard compiler from the Ubuntu repo (gcc-arm-linux-gnueabihf, Ubuntu/Linaro 4.7.3-12ubuntu1) because that has never failed for sunxi kernels, but after reading some Talk pages on the linux-rockchip Wiki I get the impression that this kernel should be compiled with a toolchain from its own time.
From the Makefile in the repo I can see apparently you were using OSELAS.Toolchain-2011.11.3? I have no experience with this toolchain and cannot find quick binaries for Ubuntu (do you have some for me?) so tomorrow I will start with another toolchain based on gcc 4.6.2: linaro-4.6-2011.11. Hopefully that solves the errors, otherwise I may have to dive into the bcm4319 source and track the missing includes...
the Oselas Toolchain must be compiled by your own. It is very fast and the source can be found here:
This toolchain is not offered in binary form and has special patches for more speed and reliability.
If you don't want to compile it by yourself, I could upload it, but I would need much time for it cause I have a very slow internet connection at home. For rk 2918 tablets I use normally 2 different toolchains, the Oselas and a generic 4.4.3. The 4.4.3 is know to always work, slow but it work. The Oselas is used if all is up and running and I want to optimize the speed.
Regarding the bcm, you should look at the rk29_kernel_308. Perhaps all you need can be found in it to complete the compile.
Once again thanks for your help. It is good to know that gcc 4.4.3 is a "safe" toolchain: I have obtained it here and successfully compiled a standard odys-neox8 kernel image with it, which runs on my tablet. The Linaro 4.6.2 toolchain I mentioned in my previous post also generates a working image from the odys-neox8 defconfig.
However, as soon as I select the bcm4319 driver, the build fails with the error quoted in my previous post, also on gcc 4.4.3.
Unfortunately the directory /drivers/net/wireless/bcm4319 in the rk29_kernel_308 project is completely identical to the one in the android_kernel_odys_neox_3-0-8 project, so there's little to be gained there.
I have just looked at the sources to see what is going on.
extern void bcm4329_power_save_exit(void);
extern void bcm4329_power_save_init(void);
And later on uses those functions. They are defined in wl_iw.c.
I can force it to compile by removing -Werror-implicit-function-declaration from the bcm4319/Makefile. Now the linker chokes on a function in dhd_linux.c which is defined in dhd_custom_gpio.c:
drivers/built-in.o: In function `dhd_customer_gpio_wlan_ctrl':
kobj.c:(.text+0x82c10): undefined reference to `wifi_set_power'
kobj.c:(.text+0x82c34): undefined reference to `wifi_set_power'
drivers/built-in.o: In function `dhd_custom_get_mac_address':
kobj.c:(.text+0x82c58): undefined reference to `wifi_get_mac_addr'
make: *** [.tmp_vmlinux1] Error 1
I will see if I can find a way to fix this with my limited experience, but perhaps you've encountered similar issues while compiling RK2918 kernels. Is it possible that nobody has actually compiled their own kernel with BCM4319 SDIO before, so that this driver is just straight from a GPL dump?
I will try to fix it for you.
Most Users Ever Online: 749
Currently Online: ips4e13, neoxenon
Currently Browsing this Page:
Devices in use: Desktop (74), Phone (12)
Guest Posters: 43
Moderators: globula_neagra, exelletor, JochenKauz, Oma7144, cracktech