Medion Lifetab S9714 (medion-kai)
Appearance
![]() Medion Lifetab S9714 | |
Manufacturer | Lenovo |
---|---|
Name | Medion Lifetab S9714 |
Codename | medion-kai |
Released | 2012 |
Hardware | |
Chipset | NVIDIA TEGRA 3 |
CPU | NVIDIA TEGRA 3 Quad-Core 1.2 GHz |
GPU | NVIDIA TEGRA 3 (Ultra Low Power GeForce) |
Display | 1280 x 800 touchscreen |
Storage | 32 GB internal storage |
Memory | 1 GB |
Architecture | armv7 |
Software | |
Original software | Android 4.0 / 4.1 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage |
No data |
SD card |
No data |
Battery |
No data |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
No data |
Audio |
No data |
Camera |
No data |
Camera Flash |
No data |
Connectivity | |
WiFi |
No data |
Bluetooth |
No data |
GPS |
No data |
NFC |
No data |
Modem | |
Calls |
No data |
SMS |
No data |
Mobile data |
No data |
Miscellaneous | |
FDE |
No data |
USB OTG |
No data |
HDMI/DP |
No data |
Sensors | |
Accelerometer |
No data |
Magnetometer |
No data |
Ambient Light |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Contributors
Maintainer(s)
Users owning this device
How to enter flash mode
To start fastboot mode:
- boot into recovery by holding volume-down and power button at the same time, then
adb reboot bootloader
To unlock bootloader in fastboot mode (CAUTION: this will erase userdata! Backup before doing this!): fastboot oem unlock
Installation
My procedure was:
- Backup all important user data
- Unlock bootloader (see above)
- Install CWM recovery by going into fastboot mode and then running
fastboot flash recovery A2109_CWMrecovery-6.0.1.9d.img
- Backup Android installation on SD card
- Follow installation guide (note that flashing rootfs can take a few minutes without feedback, just wait)
- After flashing has finished, the screen should show the Medion logo and a notice saying "Cold booting linux"; after that, the postmarkedOS logo and then the demo should come up.
Notes
Apparently, the device was manufactured by Lenovo for vendor Medion and is similar to Lenovo's A2110 / A2109 boards. Some information about the IdeaTab A2109.
How bonsaiblue made wifi work
How bonsaiblue made wifi work (minus the confusing detours). Inspired by the very helpful How_drebrez_made_wifi_work.
- Find information online about the wifi chip of the device: it uses Broadcom BCM4330 for wifi 11b/g/n and Bluetooth 3.0
- Read the WiFi page, in particular the part about Broadcom WiFi.
- Since that page mentions kernel config parameters, grep for "BCM" in the devices kernel config:
grep -i "BCM" pmaports/device/linux-medion-kai/config-medion-kai.armv7 ... CONFIG_BCMDHD_FXN_FW_PATH="/system/vendor/firmware/bcm4330/fw_bcmdhd.bin" CONFIG_BCMDHD_FXN_NVRAM_PATH="/system/etc/nvram_4330.txt" CONFIG_BCMDHD_FXN_195_89=m ...
- So the wifi chip needs a kernel module (
CONFIG_BCMDHD_FXN_195_89=m
) and firmware and config files (fw_bcmdhd.bin
,nvram_4330.txt
). - Download and unpack the vendor's OTA ROM zip (link in the Medion_Lifetab_S9714_(medion-kai)#See_also section). (Other ideas on how to find firmware files are on the How_to_find_device-specific_information#Firmware_files page.)
- In the unpacked ROM folder, look for
system/vendor/firmware/bcm4330/fw_bcmdhd.bin
andsystem/etc/nvram_4330.txt
. - FOR TESTING ONLY copy both files to
aports/device/device-medion-kai
. When done with testing, a firmware package should be created, see Device_specific_package#Proprietary_firmware_or_userland_blobs. - Edit
device/linux-medion-kai/APKBUILD
to get kernel modules built and installed:- Increase
pkgrel
by one. - At the end of the
build()
section, add this to build the modules:
- Increase
# the 'no-pic' flag is necessary to avoid the # error 'Unknown symbol _GLOBAL_OFFSET_TABLE_ (err 0)' when loading the module make ARCH="$_carch" CC="${CC:-gcc}" CFLAGS_MODULE="-fno-pic" \ KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" modules
- At the end of the
package()
section, add this to install the modules:
- At the end of the
# Modules cd "$builddir" unset LDFLAGS make ARCH="$_carch" CC="${CC:-gcc}" \ KBUILD_BUILD_VERSION="$((pkgrel + 1))-postmarketOS" \ INSTALL_MOD_PATH="$pkgdir" INSTALL_MOD_STRIP=1 \ modules_install
- Edit
device/linux-medion-kai/config-medion-kai.armv7
and set the path where the wifi firmware is expected to somewhere in/lib/firmware/postmarketos
:
CONFIG_BCMDHD_FXN_FW_PATH="/lib/firmware/postmarketos/bcm4330/fw_bcmdhd.bin" CONFIG_BCMDHD_FXN_NVRAM_PATH="/lib/firmware/postmarketos/bcm4330/nvram_4330.txt"
- Rebuild
linux-medion-kai
and create an image file:
pmbootstrap checksum linux-medion-kai && \ pmbootstrap kconfig check -f && \ pmbootstrap build linux-medion-kai --force && \ pmbootstrap install
- Chroot into the image file and check if modules have been built:
pmbootstrap chroot -r find /lib/modules/
- In particular there should be
/lib/modules/3.1.10/kernel/drivers/net/wireless/bcmdhd_fxn_195_89/bcmdhd.ko
. Leave chroot again (withexit
).
- In
device/device-medion-kai
, add a new filemodules-load.conf
and have the module found in the previous step loaded at boot time:
# This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # wifi module bcmdhd
- Edit
device/device-medion-kai/APKBUILD
- Increase
pkgrel
by one. - Add to source files and declare a new subpackage:
- Increase
subpackages="$pkgname-nonfree-firmware:nonfree_firmware" source="deviceinfo modules-load.conf fw_bcmdhd.bin nvram_4330.txt"
- At the end of the
package()
section, add this to putmodules-load.conf
in the right place on the device:
- At the end of the
install -Dm644 "$srcdir"/modules-load.conf \ "$pkgdir"/etc/modules-load.d/00-${pkgname}.conf
- Below the
package()
section, add a newnonfree_firmware()
section that installs the files from the vendor ROM. Again, this is FOR TESTING ONLY. How a real firmware package is created is described in Device_specific_package#Proprietary_firmware_or_userland_blobs.
- Below the
nonfree_firmware() { pkgdesc="Lenovo Medion Lifetab S9714 wifi firmware" mkdir "$subpkgdir" install -D -m644 "$srcdir"/nvram_4330.txt \ "$subpkgdir"/lib/firmware/postmarketos/bcm4330/nvram_4330.txt install -D -m644 "$srcdir"/fw_bcmdhd.bin \ "$subpkgdir"/lib/firmware/postmarketos/bcm4330/fw_bcmdhd.bin }
- Rebuild
device-medion-kai
and recreate the image file:
pmbootstrap checksum device-medion-kai && \ pmbootstrap build device-medion-kai --force && \ pmbootstrap install
- Flash image to device
pmbootstrap flasher flash_rootfs && pmbootstrap flasher flash_kernel
- ssh into the device via USB_Network and run lsmod to see if the kernel modules has been loaded correctly:
lsmod Module Size Used by bcmdhd 387306 0 cfg80211 157302 1 bcmdhd
- If the module isn't listed, check that it's on the device (
find /lib/modules/ -iname "*bcm*ko"
) and what happens if you try to insert it manually (modprobe bcmdhd || dmesg | tail -n 20
). If modprobe doesn't find the module you can also tryinsmod /lib/modules/3.1.10/kernel/drivers/net/wireless/bcmdhd_fxn_195_89/bcmdhd.ko || dmesg | tail -n 20
.
If dmesg givesUnknown symbol _GLOBAL_OFFSET_TABLE_
you may be missing the-fno-pic
flag when building the kernel modules.
- Once the module is loaded correctly, continue with the steps on the Wifi page:
- Check if the interface is available
ip link ... 7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
- Scan for available wifis:
nmcli device wifi list ifname wlan0
- Connect to your wifi:
nmcli device wifi connect "$SSID" password "$PASSWORD" ifname wlan0
Related links
PCI id according to system/etc/nvram_4330.txt: 14e4:4360
- asus-grouper has similar hardware but the kernel params are named slightly differently: CONFIG_BCMDHD_FW_PATH vs CONFIG_BCMDHD_FXN_FW_PATH
- config file very similar to nvram_4330.txt
- chromeos commit
- android commit
- linux wireless drivers page - seems 14e4:4360 is NOT supported
See also
- Device package
- Kernel package
- Vendor Android kernel sources in a GitHub repository
- CWM recovery is available here
- Direct link for CWM for Jelly Bean / Android 4.1
- Direct link for CWM for Ice Cream Sandwich / Android 4.0