Skip to content

Instantly share code, notes, and snippets.

@RandomInsano
Last active December 29, 2022 22:56
Show Gist options
  • Save RandomInsano/6a2de40f71c8580b79621f4699d3595e to your computer and use it in GitHub Desktop.
Save RandomInsano/6a2de40f71c8580b79621f4699d3595e to your computer and use it in GitHub Desktop.
Hacking notes on the very first Kobo (that I bought for $10)

The Original Kobo

Looks like a rebranded EB600EM without the headphone jack.

Hardware:

There are four pins that seem like an extra USB port as there are in-line components for a choke. The CPU is capable of dual USB ports here

UART

Seems to be the usual 115200 8-N-1. Pinout is the following:

  1. VCC (assumed
  2. RX
  3. TX
  4. GND

Software

The system here is very lean and isn't the behemoth of a software stack as I found on my Kindle Touch 4G. It seems like most software is provided by busybox and there are a handful of kernel drivers. The only user land programs running on the system are dbus and a custom app named nickel which seems to be the whole show. QtEmbedded 4.6.2 is used here as the framework that Nickel uses for its interface.

When logging in, make sure to pkill nickel to avoid it sleeping the device. If you do find that the terminal has frozen, touch one of the navigation buttons to wake the system temporarily.

Tools:

U-Boot:

This is a very crippled version of U-Boot and it seems to only support loading blobs via USB. Because of this, bricking the device is especially painful (which I absolutely did). I think the fastest route to success here will be to build a tool which manually rebuilds the flash by sending commands to the U-Boot console.

In fact, here's that script (because I'm avoiding other responsibilities at the moment :D)

#!/usr/bin/env python3

import sys

# There's some acrobatics here as our binary file
# is stored in a different endiannes than what U-Boot's
# `mm` command is expecting

with open(sys.argv[1], "rb") as f:
	bytes = f.read(4)
	while bytes != b'':
		buffer = list('00000000')
		i = 3
		for byte in bytes:
			value = list('{:02x}'.format(byte))
			buffer[i * 2] = value[0]
			buffer[i * 2 + 1] = value[1]

			i -= 1
		print(''.join(buffer))
		bytes = f.read(4)

Here are the commands presented:

?       - alias for 'help'
autoscr - run script from memory
bar     - display gray bar with waveform
base    - print or set address offset
batt    - read out current battery voltage
bbcheck - Show Nand Flash bad block (Specific)
bbmark  - Mark Nand Flash bad block (Specific)
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
bootsd   - Boot from sd card
cmp     - memory compare
coninfo - print console devices andormation
cp      - memory copy
crc32   - checksum calculation
echo    - echo args to console
epc     - let epson enter a specified state
epdr     - Read Reigister from  epson
epdw     - write data into epson register
epe     - Erasel with WaveFormMode and Color
epfi     - spi falsh information
epfr     - update waveform
epfw     - update waveform
epinit  - trigger epson display
epm     - display gray bar with waveform
epp     - display gray bar with waveform
eppgm  - spi falsh information
epr     - Read Reigister from  epson
eps     - display buffer
eptw     - loop write
epw     - write data into epson register
erase   - erase FLASH memory
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
itest	- return true/false on integer compare
key      - Current key pad state
loadu   - USB Device Download
loadum  - USB Device Download into memory without save into flloop    - infinite loop on address range
md      - memory display
mf_ac    - cookie ac adapter test 
mf_adc    - Test adc
mf_key    - key test
mf_rtc    - for:example : rtc 2009 08 18 
mf_sd_read    - sd read test 
mf_sd_wp    - Test sd write protect
mf_show    - Show waveform 3
mf_usb    - usb test 
mm      - memory modify (auto-incrementing)
mmcinit - init card
mtest   - simple RAM test
mw      - memory write (fill)
nande   - Erase Nand Flash block and OOB (Specific)
nandinfo -Show nand information
nandr   -  data from Nand Flash (Specific)
nandrb  - Read data from Nand Flash (Specific)
nandv   - Show Nand Flash data (Specific)
nandwb  - Write data to Nand Flash (Specific)
nandw   - Write data to Nand Flash (Specific)
nm      - memory mod(constant address)
poff    - Power off
printenv- print environment variables
protect - enable or disable FLASH write protection
pulse 
pwrc    - Power control
pwrs    - Power state
reset   - Perform RESET of the CPU
rr      - run special cod
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
uda     - let epson enter a specified state
version - print monitor version

Boot message:

U-Boot 1.1.4 (Jun 22 2010 - 14:55:31)
U-Boot code: 33F80000 -> 00000000  BSS: -> 33FAB614
SDRAM: 64 MB
io_check_em:  -1
***************init GPIO : set GPD13 to high
NAND device ID: [0xd3ec] [Samsun K9K8G08]
NAND Total Blocks=8192 <5>
nand_read_ecc: Attempt read beyond end of device 30000 10000 0
*** Warning - bad CRC or NAND, using default environment
io_check_em:  -1
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry on!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
TransferByDMA len=240000
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
TransferByDMA len=240000
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
TransferByDMA len=240000
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
USB device init ....chip_id:[0x00158230]..done.
USB information[ISP's USBD]: EP0: control, EP1: in, EP3: out
io_check_em:  -1
EM cost down:set mpowerEn
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
GetImageHeader]nfaddr=0x00360000
GetImageHeader]ImageBuffer[0]=66
GetImageHeader]ImageBuffer[1]=77
GetImageHeader]ImageBuffer[14]=40
GetImageHeader]ImageBuffer[15]=0
GetImageHeader]ImageBuffer[16]=0
filesize 240118
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
TransferByDMA len=240000
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
PowerCheck:eb600em cost down
Battry only!!!
Battery voltage more than 3.3V!!!
io_check_em:  -1
Hit any key to stop autoboot: -1 
From 0x00080000 to 0x00280000
Target read size = 0x00200000
Booting image at 31000000
   Image Name:   Linux-2.6.18.2-ntx600-v0.82
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1549120 Bytes =  1.5 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK
kernel iamge
OK
## Transferring control to Linux (at address 30008000) ...
Starting kernel ...
Uncompressing Linux.................................................................................................. done, booting the kernel.
Linux-version 2.6.18.2-ntx600-v0.82
Uboot-version CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
Machine: SBZ2440
uboot pass controller 2
uboot pass _pa_bb 29
uboot pass _pa_bt 1
uboot pass _fs_bb 30
uboot pass _fs_bt 1280
uboot pass _ap_bb 1310
uboot pass _ap_bt 8
uboot pass _us_bb 1318
uboot pass _us_bt 6874
UVer ntx-600em-v2.6
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C244X: co02.000 MHz, memory 134.000 MHz, peripheral 67.000 MHz
S3C24XX Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, assoivity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists.  Total pages: 16384
Kernel command line: noinitrd root=/dev/mtdblock4 rw rootfstype=yaffs init=uxrc console=ttySAC0 controller=2 PA_BB=29 PA_BT=1 FS_BB=30 FS_BT=1280 AP_BB=1310 AP_BT=8 US_BB=1318 US_BT=6874 UVer=ntx-600em-v2.6
irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 20ytes)
timer tcon=00500000, tcnt da18, tcfg 00000200,00000000, usec 000016ed
Console: colour dummy device 80x30
PORT: 4034920448 baud 115200 uart: ulcon = 0x00000003, ucon = 0x000003c5, ufcon = 0x00000051 ubrdiv 0x0023 umcon 0x00000000
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 61756KB available (2225K code, 766K data, 96K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
smdk_machine_init........pa_bb 29
smdk_machine_init........pa_bt 1
smdk_machine_init........fs_bb 30
smdk_machine_init........fs_bt 1280
smdk_machine_init........ap_bb 1310
smdk_machine_init........ap_bt 8
smdk_machine_init........us_bb 1318
smdk_machine_init........us_bt 6874
S3C2410 Power Management, (c) 2004 Simteectronics
wake enabled for irq 16
S3C2440: Initialising architecture
SBZ: s3c244x_irq_add() 
S3C2440: IRQ Support
S3C2440: Clock Support, DVS off
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Bluetooth: Core ver 2.11
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000irq 36
Set UART1 off
GPHCON 2955aa GPHDAT e
NetWinder Floating Point Emulator V0.97 (double precision)
yaffs Jun 10 2010 15:17:25 Installing. 
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
[Arron] s1d13521fb_init()
__device alloc
__device add
setpar over
GPGCON1=1c034<6>fb0: s1d13521 frame buffer device
S3C2440 ADC, (c) 2004 Simtec Electronics
adc_PreScale= 32
s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=3, 22ns Twrph0=7 52ns, Twrph1=3 22ns
writesize:2048, oobsize:64, erasesize:131072
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
NAND_BBT: now 1318 , skip bad check
Creating 7 MTD partitions on "NAND 1GiB 3,3V 8-bit":
0x00000000-0x00080000 : "uboot"
0x00080000-0x00260000 : "kernel"
0x002e0000-0x003a0000 : "picture"
0x003a0000-0x003c0000 : "parameters"
0x003c0000-0x0a3c0000 : "rootfs"
0x0a3c0000-0x0a4c0000 : "app"
0x0a4c0000-0x40000000 : "other"
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
mice: PS/2 mouse device common for all mice
ts: Compaq touchscreen protocol output
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /class/input/input0
s3c2410-rtc s3c2410-rtc: rtc intf: sysfs
s3c2410-rtc s3c-rtc: rtc intf: proc
s3c2410-rtc s3c2410-rtc: rtc intf: dev (254:0)
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c242c: bus frequency set to 380 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCI BCSP protocol initialized
Bluetooth: HCIrotocol initialized
***************clk_rate 67000000 clk_div 1
s3c2410-sdi s3c2410-sdi: initialisation done.
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.5
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.8
Bluetooth: BNEP (Ethernet Emulation) ver 1.2
s3c2410-rtc s3c2410-rtc: setting the system clock 019-02-17 00:32:41
yaffs: dev is 32505860 name is "mtdblock4"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.4, "mtdblock4"
yaffs: auto selecting yaffs2
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 96K
PORT: 4034920448 baud 115200 uart: ulcon = 0x00000003, ucon = 0x000003c5, ufcon = 0x00000051 ubrdiv 0x00000023 umcon 0x00000000
PORT: 4034920448 baud 115200 uart: ulcon = 0x00000003, ucon = 0x000003c5, ufcon = 0x00000051 ubrdiv 0x00000023 umcon 0x00000000
PORT: 4034920448 baud 115200 uart: ulcon = 0x00000003, ucon = 0x000003c5, ufcon = 0x00000051 ubrdiv 0x00000023 umcon 0x00000000
Checking parameters:
Start_block 1318 Length 6874
pMTD_CommonChip=0xc3ea10b4
&pMTD_CommonChip->controller=0xc3ea112c
&pMTD_CommonChip->controller->lock=0xc3ecfca0
&pMTD_CommonChip->controller->active=0xc3ecfca0
&pMTD_CommonChip->controller->wq=0xc3ecfca4
&pMTD_CommonChip->state=0xc3ea1124
Startblock or length must be 8's multiply. Execute auto modify
Startblock 1320 length 6872
flash disk firmware version debug?73 Aug 20 2
start_block=1320    length=6872    pre_format=0 
Init Flash OK !!!
fd.lba_total=1a2000
fd_init OK !!!
fd_open OK !!!
FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
PORT: 4034920448 baud 115200 uart: ulcon = 0x00000003, ucon = 0x000003c5, ufcon = 0x00000051 ubrdiv 0x00000023 umcon 0x00000000

Please press Enter to activate this console. status != ButtonDev.StatusBYKeypad!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!#:.
****AP read ADC: ret 583
ret 583
IOCTL:READ 583
no usb connected, turn LED off
TZ= "NickelTime6NickelDTime" 
CHECKING DB VERSION FOR MIGRATION 
DESIRED VERSION:  12 
CURRENT VERSION:  33 
Writing `version` file for use by the desktop client 
s1d13521fb_ioctl() 0 params 	cmd=0x4528
s1d13521fb_ioctl() 0 params 	cmd=0x4529
s1d13521fb_ioctl() 0 params 	cmd=0x4528
s1d13521fb_ioctl() 0 params 	cmd=0x4529
s1d13521fb_ioctl() 0 params 	cmd=0x4528
s1d13521fb_ioctl() 0 params 	cmd=0x4529
s1d13521fb_ioctl() 0 params 	cmd=0x4528
s1d13521fb_ioctl() 0 params 	cmd=0x4529
*5 c=0x88 h=1 t=1*RealTimeClock::RealTimeClock(int) minutes == 15 
E=E=E=E=E=E=E=E=E=E=freeze!!!!!!!!!!!!!!!!!!!!
E=E=

Hacks

Bluetooth networking?

This should be possible based on the dmesg:

TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.5
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.8
Bluetooth: BNEP (Ethernet Emulation) ver 1.2

I've never done Bluetooth Ethernet, so this'll be interesting. First, here's my Bluetooth info (may you all enjoy my MAC address):

# hciconfig -a hci0
hci0:	Type: UART
	BD Address: 00:08:54:E3:D9:AD ACL MTU: 310:10 SCO MTU: 64:8
	DOWN 
	RX bytes:20533 acl:224 sco:0 events:430 errors:0
	TX bytes:19488 acl:221 sco:0 commands:119 errors:0
	Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
	Link policy: RSWITCH HOLD SNIFF PARK 
	Link mode: SLAVE ACCEPT 

And the configuration I've fudged:

# cat /etc/bluetooth/main.conf
[General]
Name = Kobo eReader
Class = 0x000100
DiscoverableTimeout = 0
PairableTimeout = 0
PageTimeout = 8192
DiscoverSchedulerInterval = 0
InitiallyPowered = true
RememberPowered = true
ReverseServiceDiscovery = true
NameResolving = true

I then paired my Mac (macOS 10.14.3) with the tablet using the Kobo's UI tools and ran bluetoothd:

# bluetoothd -nd   
bluetoothd[861]: Bluetooth daemon 4.53
bluetoothd[861]: Enabling debug information
bluetoothd[861]: parsing main.conf
bluetoothd[861]: discovto=0
bluetoothd[861]: pairto=0
bluetoothd[861]: pageto=8192
bluetoothd[861]: name=Kobo eReader
bluetoothd[861]: class=0x000100
bluetoothd[861]: discov_interval=0
bluetoothd[861]: Key file does not have key 'DeviceID'
bluetoothd[861]: Starting SDP server
bluetoothd[861]: Loading builtin plugins
bluetoothd[861]: Loading input plugin
bluetoothd[861]: Loading serial plugin
bluetoothd[861]: Loading network plugin
bluetoothd[861]: Loading service plugin
bluetoothd[861]: Loading hciops plugin
bluetoothd[861]: Loading hal plugin
bluetoothd[861]: Loading storage plugin
bluetoothd[861]: Loading plugins //lib/bluetooth/plugins
bluetoothd[861]: register_interface: path /org/bluez/861/any
bluetoothd[861]: Registered interface org.bluez.Service on path /org/bluez/861/any
bluetoothd[861]: Parsing //etc/bluetooth/network.conf failed: No such file or directory
bluetoothd[861]: Config options: InterfacePrefix=bnep%d, PANU_Script=(null), GN_Script=(null), NAP_Script=(null), GN_Interface=pan0, NAP_Interface=pan1, Security=true
bluetoothd[861]: Can't create GN bridge
bluetoothd[861]: Parsing //etc/bluetooth/input.conf failed: No such file or directory
bluetoothd[861]: HCI dev 0 registered
bluetoothd[861]: child 864 forked
bluetoothd[861]: btd_adapter_ref(0x639c0): ref=1
bluetoothd[861]: Failed to open RFKILL control device
bluetoothd[861]: Entering main loop
bluetoothd[861]: HCI dev 0 up
bluetoothd[861]: Starting security manager 0
bluetoothd[861]: Changing Major/Minor class to 0x000100
bluetoothd[861]: register_interface: path /org/bluez/861/hci0
bluetoothd[861]: Registered interface org.bluez.Service on path /org/bluez/861/hci0
bluetoothd[861]: network_server_probe: path /org/bluez/861/hci0
bluetoothd[861]: btd_adapter_ref(0x639c0): ref=2
bluetoothd[861]: Adding record with handle 0x10000
bluetoothd[861]: Record pattern UUID 0000000f-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001115-0000-1000-8000-00805f9
bluetoothd[861]: register_server_record: got record id 0x10000
bluetoothd[861]: Registered interface org.bluez.NetworkPeer on path /org/bluez/861/hci0
bluetoothd[861]: network_server_probe: path /org/bluez/861/hci0
bluetoothd[861]: Adding record with handle 0x10001
bluetoothd[861]: Record pattern UUID 0000000f-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001117-0000-1000-8000-00805f9
bluetoothd[861]: register_server_record: got record id 0x10001
bluetoothd[861]: Registered interface org.bluez.NetworkHub on path /org/bluez/861/hci0
bluetoothd[861]: network_server_probe: path /org/bluez/861/hci0
bluetoothd[861]: Adding record with handle 0x10002
bluetoothd[861]: Record pattern UUID 0000000f-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[861]: Record pattern UUID 00001116-0000-1000-8000-00805f9
bluetoothd[861]: register_server_record: got record id 0x10002
bluetoothd[861]: Registered interface org.bluez.NetworkRouter on path /org/bluez/861/hci0
bluetoothd[861]: proxy_probe: path /org/bluez/861/hci0
bluetoothd[861]: btd_adapter_ref(0x639c0): ref=3
bluetoothd[861]: Registered interface org.bluez.SerialProxyManager on path /org/bluez/861/hci0
bluetoothd[861]: Parsing //etc/bluetooth/serial.conf failed: No such file or directory
bluetoothd[861]: btd_adapter_ref(0x639c0): ref=4
bluetoothd[861]: Adapter /org/bluez/861/hci0 has been enabled
bluetoothd[861]: child 864 exited
bluetoothd[861]: Failed to access HAL
bluetoothd[861]: adapter_get_device(28:CF:E9:51:FA:52)
bluetoothd[861]: adapter_create_device(28:CF:E9:51:FA:52)
bluetoothd[861]: Creating device /org/bluez/861/hci0/dev_28_CF_E9_51_FA_52
bluetoothd[861]: btd_device_ref(0x655c8): ref=1
bluetoothd[861]: link_key_request (sba=00:08:54:E3:D9:AD, dba=28:CF:E9:51:FA:52)
bluetoothd[861]: kernel auth requirements = 0x00
bluetoothd[861]: stored link key type = 0x00
bluetoothd[861]: BNEP: incoming connect from 28:CF:E9:51:FA:52
bluetoothd[861]: Refusing connect from 28:CF:E9:51:FA:52: Operation not permitted (1)
bluetoothd[861]: Removing temporary device /org/bluez/861/hci0/dev_28_CF_E9_51_FA_52
bluetoothd[861]: Removing device /org/bluez/861/hci0/dev_28_CF_E9_51_FA_52
bluetoothd[861]: btd_device_unref(0x655c8): ref=0
bluetoothd[861]: device_free(0x655c8)
bluetoothd[861]: Removing adapter /org/bluez/861/hci0
bluetoothd[861]: unregister_interface: path /org/bluez/861/hci0
bluetoothd[861]: network_server_remove: path /org/bluez/861/hci0
bluetoothd[861]: Unregistered interface org.bluez.NetworkPeer on path /org/bluez/861/hci0
bluetoothd[861]: Removing record with handle 0x10000
bluetoothd[861]: network_server_remove: path /org/bluez/861/hci0
bluetoothd[861]: Unregistered interface org.bluez.NetworkHub on path /org/bluez/861/hci0
bluetoothd[861]: Removing record with handle 0x10001
bluetoothd[861]: network_server_remove: path /org/bluez/861/hci0
bluetoothd[861]: Unregistered interface org.bluez.NetworkRouter on path /org/bluez/861/hci0
bluetoothd[861]: Removing record with handle 0x10002
bluetoothd[861]: btd_adapter_unref(0x639c0): ref=3
bluetoothd[861]: proxy_remove: path /org/bluez/861/hci0
bluetoothd[861]: btd_adapter_unref(0x639c0): ref=2
bluetoothd[861]: btd_adapter_unref(0x639c0): ref=1
bluetoothd[861]: btd_adapter_unref(0x639c0): ref=0
bluetoothd[861]: adapter_free(0x639c0)
bluetoothd[861]: Cleanup plugins
bluetoothd[861]: unregister_interface: path /org/bluez/861/any
bluetoothd[861]: Can't remove GN bridge
bluetoothd[861]: Stopping SDP server
bluetoothd[861]: Exit

Faced with that interesting "Parsing /etc/bluetooth/serial.conf failed: No such file or directory" message, I made one that I have no idea about its internal setup here:

# cat serial.conf 
# Configuration file for serial

# There could be multiple proxy sections, the format is [Proxy <user chosen name>]
#[Proxy DUN]

# UUID for DUN proxy service
#UUID=00001103-0000-1000-8000-00805F9B34FB

# Address for device node
Address=/dev/tty.blueooth
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment