Quantcast
Channel: MobileRead Forums - Kindle Developer's Corner

PW5 Unable to install USBNetworking

$
0
0
Hi, just jailbroke a clean wiped / firmware reset PW5 with 5.16.2.1.1 and I have KUAL installed. Using the update package for (kindle-usbnet-0.22.N-r19297.tar.xz ) Update_usbnet_0.22.N_install_pw2_and_up and installing from KUAL the mrinstaller.log shows :
[2024-04-01 @ 19:12:36 +0100] :: [MRPI r19303] - Beginning the processing of package 'Update_usbnet_0.22.N_install_pw2_and_up.bin' (usbnet 0.22.N I W+Z+R+B) . . .


Package 'Update_usbnet_0.22.N_install_pw2_and_up.bin' (usbnet 0.22.N I W+Z+R+B) is not targeting your device [00 vs. D4

874], skipping . . . :(

Any ideas ? ! Thanks.

Kindle jailbreak kit

$
0
0
I watched a video and he said that the screen of the mobile phone can be projected onto the kindle touch. I would like to know if there is any jailbreak kit that can do this. If so, please share it with me and attach a tutorial. I will very grateful.
:幫助:
:謝謝:

Error launching KOReader on Kindle KT4 2019

$
0
0
Hi there,

I am having a hard time getting any KOReader / KOL version to run.
I've got a jail-breaked KT4 10th gen. 2019 Kindle with firmware 5.15.1.1.

I jail-breaked it with the languagebreak method and all went well so far.
But I cannot figure out how to run KOReader.

I installed the MRPI-version of KUAL and tried KOL 1.3 and 1.4 booklet.
Unfortunately I get an error message when I click on the KOReader document in the library.

Any ideas?

PW Cant access fastboot mode

$
0
0
Hi!

I have a bootlooping kinlde PW and I'm trying to unbrick it using Santactic's methode https://www.mobileread.com/forums/sh...d.php?t=359315 , but when i try to get into fastboot mode it is only shows the voltage of the battery over and over, and i am not able to run any command.
Code:

uboot > bist fastboot


U-Boot 2009.08-lab126 (Sep 28 2012 - 14:28:00)

CPU:  Freescale i.MX50 family 1.1V at 800 MHz
mx50 pll1: 800MHz
mx50 pll2: 400MHz
mx50 pll3: 216MHz
ipg clock    : 66666666Hz
ipg per clock : 66666666Hz
uart clock    : 24000000Hz
cspi clock    : 54000000Hz
ahb clock    : 133333333Hz
axi_a clock  : 400000000Hz
axi_b clock  : 200000000Hz
weim_clock    : 100000000Hz
ddr clock    : 266666666Hz
esdhc1 clock  : 80000000Hz
esdhc2 clock  : 80000000Hz
esdhc3 clock  : 80000000Hz
esdhc4 clock  : 80000000Hz
MMC:  FSL_ESDHC: 0, FSL_ESDHC: 1
Board: Celeste (256 MB)
Boot Reason: [POR]
Boot Device: MMC
Board Id: 015138206XS
S/N: B01
I2C:  ready
DRAM:  256 MB
Using default environment

In:    serial
Out:  serial
Err:  serial
POST done in 2 ms
Battery voltage: 4021 mV

running cmd: fastboot
Entering fastboot mode...
Battery voltage: 4026 mV
USB speed: HIGH
Connected to USB host!
USB configured.
Battery voltage: 4129 mV
Battery voltage: 4138 mV

I have already Erased MMC!
Do you have any ideas what could be the problem?

This what I see when I normally let the system to run:

Code:

In:    serial
Out:  logbuff
Err:  logbuff
Quick Memory Test 0x70000000, 0xfffe000
POST done in 17 ms
Hit any key to stop autoboot:  0
## Booting kernel from Legacy Image at 70800000 ...
  Image Name:  Linux-2.6.31-rt11-lab126
  Image Type:  ARM Linux Kernel Image (uncompressed)
  Data Size:    4608576 Bytes =  4.4 MB
  Load Address: 70008000
  Entry Point:  70008000
  Verifying Checksum ... OK
  Loading Kernel Image ... OK
OK
Starting kernel ...
2.6.31-rt11-lab126 #1 Fri Sep 28 14:59:26 PDT 2012 armv7l
INFO:Loaded module /lib/modules/eink_fb_waveform.ko  (38984 bytes)
INFO:Loaded module /lib/modules/mxc_epdc_fb.ko default_panel_hw_init=1 default_update_mode=1 (51140 bytes)
INFO:eink initialized... (786432 bytes)
Press [ENTER] for recovery menu...      0 /INFO:!!! Checking MBR /dev/mmcblk0 !!!!
INFO:partition 2, start sector is 782336
INFO:partition 3, start sector is 913408
INFO:partition 4, start sector is 1044480
INFO:maximizing partition 2863104 sectors
INFO:*** Partition table verified for /dev/mmcblk0 ***
INFO:Checking for updates... (auto-pilot mode)
/dev/mmcblk0p4:
CHS=4/16/44736 size=1465909248 bytes
flag type      first      last  lba first  lba size
Partition p1:
0x00 0x0b        16 <large>            16    2863088
    CHS: 0/1/1 - <large>
Partition p2:
Partition p3:
Partition p4:
INFO:Setup loop device /dev/loop0 for /dev/mmcblk0p4 + 8192
INFO:No update*.bin found; no update needed.
INFO:no updates found.
BOOTING DEFAULT.
  argc == 11
  argv[0]: "kinit"
  argv[1]: "consoleblank=0"
  argv[2]: "rootwait"
  argv[3]: "ro"
  argv[4]: "ip=off"
  argv[5]: "root=/dev/mmcblk0p1"
  argv[6]: "quiet"
  argv[7]: "eink=fslepdc"
  argv[8]: "video=mxcepdcfb:E60,bpp=8,x_mem=4M"
  argv[9]: "mem=256M"
  argv[10]: "console=ttymxc0,115200"
  argc == 4
  argv[0]: "IP-Config"
  argv[1]: "-i"
  argv[2]: "Linux kinit"
  argv[3]: "ip=off"
IP-Config: no devices to configure
kinit: do_mounts
kinit: name_to_dev_t(/dev/mmcblk0p1) = dev(179,1)
kinit: root_dev = dev(179,1)
kinit: /dev/root appears to be a ext3 filesystem
kinit: trying to mount /dev/root on /root with type ext3
kinit: Mounted root (ext3 filesystem) readonly.
info system:emiting_event:mounted_proc:
info system:emiting_event:mounted_sys:
info system:emiting_event:mounted_dev:
info system:emiting_event:mounted_tmpfs:
info milestone:5.39:sy50:
init.exe: recevent pre-start process (496) terminated with status 1
info system:start:time=5410:
info system:config:platform=yoshime3,board=celeste,rev=21,proto=N,wifi=Y,wan=Y:
info milestone:5.62:sy51:
info milestone:6.26:sy99:
info system:done:time=6290:
info system_cramfs_loopbacks:mountingcramfs:Mounting compressed directories filesystem images:
info system_cramfs_loopbacks:mounted:Image /lib/firmware/cyttsp.cramfs.img mounted:
info system_cramfs_loopbacks:mounted:Image /usr/share/X11/xkb.cramfs.img mounted:
info system_cramfs_loopbacks:mounted:Image /usr/java/lib/fonts.cramfs.img mounted:
info system_cramfs_loopbacks:mounted:Image /etc/kdb.src.cramfs.img mounted:
info system_cramfs_loopbacks:mounted:Image /usr/lib/locale.cramfs.img mounted:
info system_cramfs_loopbacks:mounted:Image /usr/share/keyboard.cramfs.img mounted:
info system:emiting_event:mounted_cramfs_loopbacks:
info milestone:6.92:fs75:
info system:emiting_event:loaded_modules_dependencies:
info modules:modprobe:loading module g_file_storage:
info system:emiting_event:loaded_g_file_storage:
info modules:modprobe:loading module fuse:
info system:emiting_event:loaded_fuse:
info modules:modprobe:loading module mwan:
info milestone:7.29:fs00:
info system:emiting_event:loaded_mwan:



Welcome to Kindle!

kindle login: info modules:modprobe:loading module ppp_async:
info system:emiting_event:loaded_ppp_async:
info system:emiting_event:loaded_fakekey:
info system:emiting_event:mounted_varLocal:
info milestone:7.56:fs25:
info milestone:7.60:vi00:
info display:update:Displaying splash screen:
info milestone:7.95:vi99:
info display:started:time=7960:
info system:emiting_event:display_ready:
info userstore:run:time=8200,action=start:
info battery:charged:cap=89,mV=4086,mAH=647:
info system:emiting_event:battery_ready:
info cyttsp:update:vendor=CANDO:
info system:emiting_event:loaded_touch:
info system:emiting_event:mounted_userstore:
info milestone:10.53:fs50:
info milestone:10.55:fs90:
info milestone:10.58:fs99:
info milestone:10.61:sys99:
info system:emiting_event:dbus_ready:
info dbus:check-update:status=2:dbus_ready sent
info wan:info:type=4,version=ELMO_04_04_00:
info wand.conf:::wan start script complete
info milestone:11.96:xx00:
info X:load:time=12050:
info X:xorg.conf:Generating xorg.conf:
info X:makexconfig:Celeste Input device detection status:
info X:makexconfig:Touch device: OK:
info X:makexconfig:Accelerometer device: N/A !!:
info X:xorg.conf:xorg.conf generated:
info milestone:12.81:xx50:
info X:starting:time=12840:
info x_monitor:x_monitor starts::
info wifim:enablediv:enabling antenna diversity for wifi...:
info x_monitor:read_counters::REBOOTS=0, RESTART=0, REBOOT_LIMIT=1, RESTART_LIMIT=5

I tried to EXPORT FAT and I could copy an update.bin to it then press U "Update usin update*.bin file on FAT partition" , but it did nothing.

Jailbroken Kindle PW3 refusing to start KOReader

$
0
0
Hi!
I've recently jailbroken my kindle PW3 so I can install KOReader and repurpose it, and I've succesfully jailbroken the device and installed KUAL, but when I try to start KOReader it refreshes the screen for a split second then returns to the home screen.

I've tried no-framework and asap versions but nothing.

I've seen a recent post saying that the nightly builds might work, but no luck.

So does anyone have a suggestion? I'll put some info below:

Running firmware 5.16.2.1.1
KOReader version 2024.03.1
KUAL version f190a38

If anybody needs more info I'll be happy to.


Thanks.

Page turning from phone (oasis 10) via jb?

$
0
0
Hey guys, ive been wondering if anyone managed to use the jb to bluetooth their phone and turn pages from it or via an app

I am a dev by profession but i figured id ask if and what the jb actually enables before i take a swing at it :D

Im using a kindle oasis 10th gen btw

Thanks alot!

Can I use Waydroid to run Android apps on my Kindle?

$
0
0
Sorry, I don't speak English, so this article was translated using ChatGPT.

I own a Kindle Paperwhite 5, running version 5.16.2.1.1 with 474MB of RAM (as seen on htop). The reason behind this exploration was my desire to use a manga app from Android on my Kindle device.

I'm not very familiar with Linux, but I noticed that many people run Android on Linux using Waydroid, which utilizes Linux containers to minimize performance loss. So, I decided to give it a try. First, I used alpine_kindle to run lxc-checkconfig and obtained results similar to the following (this result was captured when I wrote this post; it seems slightly different from my initial run, possibly due to my mistake or misremembering).
Code:

LXC version 6.0.0

--- Namespaces ---
Namespaces: required
Utsname namespace: missing
Ipc namespace: required
Pid namespace: required
User namespace: missing
Network namespace: missing
Namespace limits:
  cgroup: 3767
  ipc: 3767
  mnt: 3767
  net: 3767
  pid: 3767
  user: 3767
  uts: 3767

--- Control groups ---
Cgroups: enabled
Cgroup namespace: enabled
Cgroup v1 mount points:
Cgroup v2 mount points:
Cgroup v1 systemd controller: missing
Cgroup v1 freezer controller: missing
Cgroup device: missing
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: missing
Macvlan: missing
Vlan: enabled, not loaded
Bridges: enabled, not loaded
Advanced netfilter: enabled, not loaded
CONFIG_NF_NAT_IPV4: enabled, not loaded
CONFIG_NF_NAT_IPV6: missing
CONFIG_IP_NF_TARGET_MASQUERADE: enabled, not loaded
CONFIG_IP6_NF_TARGET_MASQUERADE: missing
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: missing
CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled, not loaded
FUSE (for use with lxcfs): enabled, not loaded

--- Checkpoint/Restore ---
checkpoint restore: missing
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: missing
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: missing
CONFIG_NETLINK_DIAG: missing
File capabilities: enabled

Note: Before booting a new kernel, you can check its configuration with:

  CONFIG=/path/to/config /usr/bin/lxc-checkconfig

It seems there's limited explanation online regarding the results of lxc-checkconfig. From the numerous missing results, I inferred that the current Linux kernel might not support LXC. Therefore, I embarked on recompiling the Linux kernel. Following the method 2 outlined in Step by Step instructions for kindle development environment, I compiled using the compiler downloaded from Linaro (gcc4.9.4), and my compilation environment was WSL Ubuntu 22.04 with GCC version 11.4.0.

After comparing the contents of '/proc/config.gz' in the Kindle, I speculated that the kernel configuration file was mt8110-bellatrix_defconfig. So, I used the following commands to install remaining tools, configure, and compile:
Code:

sudo apt update
sudo apt upgrade
sudo apt install gcc
sudo apt install bc
sudo apt install lzop
make ARCH=arm CROSS_COMPILE=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- mt8110-bellatrix_defconfig
make ARCH=arm CROSS_COMPILE=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-

There might encounter the following error:
Code:

/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:116: scripts/dtc/dtc] Error 1

only need to delete 'YYLTYPE yylloc;' from line 42 in 'scripts/dtc/dtc-lexer.l' and line 640 in 'scripts/dtc/dtc-lexer.lex.c_shipped'. This error seems to be caused by the GCC version exceeding 9 in the compilation environment. Subsequently, might encounter the following two errors:
Code:

drivers/devfreq/helio-dvfsrc-opp.c:6:26: fatal error: helio-dvfsrc.h: No such file or directory
./drivers/misc/mediatek/hwtcon_v2/hal/hwtcon_pipeline_config.h:4:24: fatal error: hwtcon_def.h: No such file or directory

These two errors can be resolved by adding the following lines respectively to 'drivers/devfreq/Makefile' and 'drivers/misc/mediatek/hwtcon_v2/Makefile':

In 'drivers/devfreq/Makefile':
Code:

ccflags-y += -I$(srctree)/drivers/devfreq/
In 'drivers/misc/mediatek/hwtcon_v2/Makefile':
Code:

ccflags-y += -I$(srctree)/drivers/misc/mediatek/hwtcon_v2
However, since I'm not familiar with Linux Kernel compilation and MediaTek device compilation, I'm unsure if this method is correct. After applying these changes, should have successfully compiled. My Linux directory structure is as follows:
Code:

.config
.missing-syscalls.d
.tmp_versions
.version
.vmlinux.cmd
Android.mk
COPYING
CREDITS
CleanSpec.mk
Documentation
Kbuild
Kconfig
MAINTAINERS
Makefile
Module.symvers
README
REPORTING-BUGS
System.map
arch
block
build.config.goldfish.arm
build.config.goldfish.arm64
build.config.goldfish.mips
build.config.goldfish.
build.config.goldfish.x86
build.config.goldfish.
certs
crypto
drivers
firmware
fs
include
init
ipc
kenv.mk
kernel
lib
linux-4.9.tar.gz
mm
modules.builtin
modules.order
net
samples
scripts
security
singletask.lock
sound
tools
usr
virt
vmlinux
vmlinux.o

I came across some articles mentioning the need for a uImage file, so I tried executing 'make ARCH=arm CROSS_COMPILE=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- uImage', but encountered additional errors:
Code:

drivers/misc/mediatek/pmic/fiti/Makefile:1: harry build hwtcon
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses:
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/Makefile:92: arch/arm/boot/uImage] Error 1
make: *** [arch/arm/Makefile:342: uImage] Error 2

Because I'm unsure about the value of LOADADDR, and I'm hesitant to flash the new kernel onto my Kindle, fearing it might become bricked, I've halted my kernel compilation process for now.

While researching, I discovered another method called kexec that allows executing a new kernel. However, upon checking the /proc/config.gz file in my Kindle, I found that the Kindle's kernel didn't have this feature enabled. So, I referred to the article Kernel development / no kexec syscall and attempted to use kexec-module. However, I faced compilation errors and encountered many unknown symbols during insmod. Thus, I made numerous modifications based on kexec-mod and anbox-modules.

First, I adjusted the Makefile to:
Code:

KDIR ?= /lib/modules/`uname -r`/build
ARCH ?= arm
PWD := $(shell pwd)

default: orig
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)

orig:
        mkdir $@
        ln -s $(KDIR)/arch/$(ARCH)/kernel/relocate_kernel.S
        cp $(KDIR)/arch/$(ARCH)/kernel/machine_kexec.c $@/
        cp $(KDIR)/kernel/kexec.c $@/
        cp $(KDIR)/kernel/kexec_core.c $@/
        cp $(KDIR)/kernel/kexec_internal.h $@/

clean:
        rm -f -r *.o *.ko .*cmd .tmp* core *.i

Kbuild altered to:
Code:

obj-m := kexec-mod.o
kexec-mod-y := kexec-drv.o deps.o kexec.o
kexec-mod-y += machine_kexec.o relocate_kernel.o
ccflags-y := -include $(PWD)/kexec-mod.h

add 'deps.c' file:
Code:

#include <linux/types.h>
#include <linux/mm.h>
#include <linux/kallsyms.h>

static void (*set_kernel_text_rw_ptr)(void) = NULL;
static int (*platform_can_secondary_boot_ptr)(void) = NULL;
static void (*migrate_to_reboot_cpu_ptr)(void) = NULL;
static int (*platform_can_cpu_hotplug_ptr)(void) = NULL;
static void (*printk_nmi_flush_on_panic_ptr)(void) = NULL;

void set_kernel_text_rw(void){
        if (!set_kernel_text_rw_ptr)
                set_kernel_text_rw_ptr = (void (*)(void))kallsyms_lookup_name("set_kernel_text_rw");       
        return set_kernel_text_rw_ptr();
}

int platform_can_secondary_boot(void){
        if (!platform_can_secondary_boot_ptr)
                platform_can_secondary_boot_ptr = (int (*)(void))kallsyms_lookup_name("platform_can_secondary_boot");       
        return platform_can_secondary_boot_ptr();
}
void migrate_to_reboot_cpu(void){
        if(!migrate_to_reboot_cpu_ptr)
                migrate_to_reboot_cpu_ptr = (void (*)(void))kallsyms_lookup_name("migrate_to_reboot_cpu");
        return migrate_to_reboot_cpu_ptr();
}
int platform_can_cpu_hotplug(void){
        if(!platform_can_cpu_hotplug_ptr)
                platform_can_cpu_hotplug_ptr = (int (*)(void))kallsyms_lookup_name("platform_can_cpu_hotplug");
        return platform_can_cpu_hotplug_ptr();
}
void printk_nmi_flush_on_panic(void){
        if(!printk_nmi_flush_on_panic_ptr)
                printk_nmi_flush_on_panic_ptr = (void (*)(void))kallsyms_lookup_name("printk_nmi_flush_on_panic");
        return printk_nmi_flush_on_panic_ptr();
}

During the first 'make' operation, may encounter numerous 'WARNING: "xxx" [xxx.ko] undefined!' messages.
Code:

make KDIR=~/kindle/gplrelease/linux-4.9 ARCH=arm CROSS_COMPILE=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-
...
WARNING: "arch_phys_to_idmap_offset" [/xxx/kexec-module/kernel/kexec-mod.ko] undefined!
WARNING: "crash_kexec_post_notifiers" [/xxx/kexec-module/kernel/kexec-mod.ko] undefined!
WARNING: "panic_cpu" [/xxx/kexec-module/kernel/kexec-mod.ko] undefined!
...

Modify line 87 of the 'orig/kexec_core.c' file copied over to the makefile to read: 'if (crash_kexec_post_notifiers)'
Code:

        bool *crash_kexec_post_notifiers_ptr = (bool*)kallsyms_lookup_name("crash_kexec_post_notifiers");
        if (*crash_kexec_post_notifiers_ptr)

And modify the function on line 904 to read: 'void crash_kexec(struct pt_regs *regs)'
Code:

void crash_kexec(struct pt_regs *regs)
{
        int old_cpu, this_cpu;

        /*
        * Only one CPU is allowed to execute the crash_kexec() code as with
        * panic().  Otherwise parallel calls of panic() and crash_kexec()
        * may stop each other.  To exclude them, we use panic_cpu here too.
        */
        atomic_t *panic_cpu_ptr = (atomic_t*)kallsyms_lookup_name("panic_cpu");
        this_cpu = raw_smp_processor_id();
        old_cpu = atomic_cmpxchg(panic_cpu_ptr, PANIC_CPU_INVALID, this_cpu);
        if (old_cpu == PANIC_CPU_INVALID) {
                /* This is the 1st CPU which comes here, so go ahead. */
                printk_nmi_flush_on_panic();
                __crash_kexec(regs);

                /*
                * Reset panic_cpu to allow another panic()/crash_kexec()
                * call.
                */
                atomic_set(panic_cpu_ptr, PANIC_CPU_INVALID);
        }
}

And add the following to line 67 of 'arch/arm/include/asm/kexec.h' in the Linux source code:
Code:

#define arch_phys_to_idmap_offset (*(long long*)kallsyms_lookup_name("arch_phys_to_idmap_offset"))
And add the following to line 79 of 'arch/arm/include/asm/kexec.h':
Code:

#undef arch_phys_to_idmap_offset
And add the following to line 20 of 'arch/arm/include/asm/memory.h' in the Linux source code:
Code:

#include <linux/kallsyms.h>
And add the following to line 79 of 'arch/arm/include/asm/memory.h':
Code:

#define arch_phys_to_idmap_offset (*(long long*)kallsyms_lookup_name("arch_phys_to_idmap_offset"))
And add the following to line 315 of'arch/arm/include/asm/memory.h':
Code:

#undef arch_phys_to_idmap_offset
At this point, recompiling should no longer show 'WARNING: "xxx" [xxx.ko] undefined!'
Code:

make KDIR=~/kindle/gplrelease/linux-4.9 ARCH=arm CROSS_COMPILE=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-
However, even after copying it to the Kindle and executing insmod kexec-mod.ko, may still receive
Code:

insmod: error inserting 'kexec-mod.ko': -1 Unknown symbol in module
After searching online for a while, I couldn't find a solution to this issue. Eventually, I realized that 'static int __init kexecmod_init(void)' didn't seem to execute successfully, as it returned '-ENOENT'. This caused the error message during insmod. Later, I discovered that the Kindle's kernel hadn't enabled kallsyms and the alternative solution for accessing non-exported functions, kprobes. At this point, I'm completely stuck. Can anyone help me?

I tried compiling the tools that might be needed afterward, such as kexec-tools, and after using the following command, I was able to compile successfully.
Code:

sudo apt install automake
./bootstrap
export PATH=${PATH}:~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin
LDFLAGS=-static ./configure --host=~/kindle/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi --without-zlib --without-lzma
make

For compiling lxc, first, create a file named 'cross.txt' in the lxc source code directory and fill it with:
Code:

[binaries]
c = 'arm-linux-gnueabi-gcc'
cpp = 'arm-linux-gnueabi-g++'
ar = 'arm-linux-gnueabi-ar'
strip = 'arm-linux-gnueabi-strip'
ld = 'arm-linux-gnueabi-ld'
objcopy = 'arm-linux-gnueabi-objcopy'


[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'arm'
endian = 'little'

Modify the compilation settings by changing the true to false for the following three items in 'meson_options.txt'. Note that 'dbus' and 'install-init-files' may be required, but since I'm not sure how to handle the compilation errors they may cause, I've disabled them for now.
Code:

option('dbus', type: 'boolean', value: 'false',
      description: 'use dbus')
option('specfile', type : 'boolean', value: false,
      description: 'whether to prepare RPM spec')
option('install-init-files', type : 'boolean', value: false,
      description: 'whether to install init files for local init (e.g. systemd units)')

After that, execute the following command to compile successfully. The resulting executable files will be located in the 'out' directory.
Code:

meson setup --cross-file cross.txt --default-library=static -Db_lto=false build
meson compile -C build
DESTDIR=~/kindle/gplrelease/lxc/out/ meson install -C build

Since lxc-checkconfig requires zgrep, I also compiled a gzip
Code:

./configure --host=arm-linux --prefix=~/kindle/gplrelease/gzip-1.2.4/out CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ --enable-shared --enable-static --disable-test
make LDFLAGS="--static"
make install DESTDIR=~/kindle/gplrelease/gzip-1.2.4/out/

I'm not sure whether to set the 'prefix' or 'DESTDIR' for gzip. I didn't see anything related to 'DESTDIR' in the Makefile, so I set both.

Finally, I directly executed lxc-checkconfig on the Kindle and obtained results similar to those of an Alpine chroot.
Code:

[root@kindle bin]# pwd
/mnt/us/lxc/usr/local/bin
[root@kindle bin]# ls
check.log          lxc-checkpoint    lxc-destroy        lxc-ls            lxc-top            lxc-wait
lxc-attach        lxc-config        lxc-device        lxc-monitor        lxc-unfreeze      zgrep
lxc-autostart      lxc-console        lxc-execute        lxc-snapshot      lxc-unshare
lxc-cgroup        lxc-copy          lxc-freeze        lxc-start          lxc-update-config
lxc-checkconfig    lxc-create        lxc-info          lxc-stop          lxc-usernsexec
[root@kindle bin]# export PATH=${PATH}:/mnt/us/lxc/usr/local/bin
[root@kindle bin]# lxc-checkconfig
lxc-start: error while loading shared libraries: liblxc.so.1: cannot open shared object file: No such file or director                                                          y
LXC version

--- Namespaces ---
Namespaces: required
Utsname namespace: missing
Ipc namespace: required
Pid namespace: required
User namespace: missing
Network namespace: missing
Namespace limits:
  cgroup: 3767
  ipc: 3767
  mnt: 3767
  net: 3767
  pid: 3767
  user: 3767
  uts: 3767

--- Control groups ---
Cgroups: enabled
Cgroup namespace: enabled
Cgroup v1 mount points:
 - /sys/fs/cgroup/memory
Cgroup v2 mount points:
Cgroup v1 systemd controller: missing
Cgroup v1 freezer controller: missing
Cgroup v1 clone_children flag: enabled
Cgroup device: missing
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: missing
Macvlan: missing
Vlan: enabled, not loaded
Bridges: enabled, not loaded
Advanced netfilter: enabled, not loaded
CONFIG_NF_NAT_IPV4: enabled, not loaded
CONFIG_NF_NAT_IPV6: missing
CONFIG_IP_NF_TARGET_MASQUERADE: enabled, not loaded
CONFIG_IP6_NF_TARGET_MASQUERADE: missing
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: missing
CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled, not loaded
FUSE (for use with lxcfs): enabled, not loaded

--- Checkpoint/Restore ---
checkpoint restore: missing
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: missing
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: missing
CONFIG_NETLINK_DIAG: missing
File capabilities: enabled

Note: Before booting a new kernel, you can check its configuration with:

  CONFIG=/path/to/config /mnt/us/lxc/usr/local/bin/lxc-checkconfig

Due to my limited understanding of Linux and Android, and uncertainty about whether my actions are correct, I've detailed all my steps in the article. Currently, I only know that this method allows running Android with lower risk and performance loss. It seems challenging to run Android on a device with only 512MB of RAM, but some people have successfully run it on the Kindle Paperwhite 3 by flashing the original Kindle system, which is fundamentally different from what I'm doing now. However, I still want to give it a try. Lastly, I apologize for using translation to post my message.

PW5 Encountering errors when running Chromium in Kindle 5.16.2.1.1 version using chroot

$
0
0
Sorry, I don't speak English, so this article is translated using ChatGPT.

I have a Kindle Paperwhite 5, version 5.16.2.1.1.

I don't know much about Linux, but after seeing the news provided in the article the browser in 5.16.4 is chromium, I attempted to follow the method outlined in alpine_kindle to create a busybox chroot. I copied the "/lib" and "/usr/lib" directories from the rootfs of the 5.16.4 update into the chroot and ran it. However, I encountered the following error message. Does anyone know what might be causing this?

Code:

Fontconfig error: Cannot load default config file
[7213:7224:0412/132918.892495:ERROR:gl_implementation.cc(280)] Failed to load /usr/bin/chromium/bin/swiftshader/libGLESv2.so: /usr/bin/chromium/bin/swiftshader/libGLESv2.so: cannot open shared object file: No such file or directory

DevTools listening on ws://127.0.0.1:44141/devtools/browser/09ba9c51-faa1-4a10-93d8-26c0e49b7c64
[7213:7213:0412/132918.909046:ERROR:browser_main_loop.cc(280)] GLib: g_hash_table_destroy: assertion 'hash_table != NULL' failed
Aborted

I tried looking for libGLESv2.so in the 5.16.4 upgrade package, but couldn't find it. Did I miss something?

KOReader can't read USB Connected

$
0
0
I'm wondering, is there a patch for this? I always have to exit out of KOReader software to get USB read, i.e. enter Kindle OS.

Anyone know a solution?

Appreciate yall and have a good day. :sunny: :sunny: :sunny:

Fast(er) launching between KoReader / Scribe Notebooks possible?

$
0
0
I use my Scribe daily to write via the built-in notebooks feature. I would prefer to just stay in koreader and launch this notebook feature from within it and then when I leave the notebook area, return to koreader. Is there anyway to do this? Or I have to continue to quit out of koreader, open notebooks, then open koreader via the KUAL booklet?




Latest Images