Comments (24)
So this is what I tried so far:
export kernel_filename=~/ipsw/kernelcache.release.iphone11b.decompressed
export ramdisk_filename=~/ipsw/038-96262-062.dmg.payload
export dtb_filename=~/ipsw/DeviceTree.n104ap.im4p.decompressed
export trustcache_filename=~/ipsw/Firmware/038-96262-062.dmg.trustcache.payload
export kargs=debug=0x8 kextlog=0xfff cpus=1 rd=disk0 serial=2
qemu-system-aarch64 -D log.txt -M t8030,kernel-filename=${kernel_filename},ramdisk-filename=${ramdisk_filename},dtb-filename=${dtb_filename},trustcache-filename=${trustcache_filename},kern-cmd-args="${kargs}",xnu-ramfb=off
This results in:
g_virt_base: 0xfffffff004000000
g_phys_base: 0x0000000800000000
kernel_low: 0xfffffff004004000
kernel_high: 0xfffffff009aa2c08
Failed to find gap of requested size: 18446744073641918464
Aborted (core dumped)
With the following backtrace:
Thread 1 "qemu-system-aar" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff7630859 in __GI_abort () at abort.c:79
#2 0x0000555555dfb118 in find_ram_offset (size=18446744073641918464) at ../softmmu/physmem.c:1574
#3 0x0000555555dfbb82 in ram_block_add (new_block=0x555557db1a80, errp=0x7fffffffdac8, shared=false) at ../softmmu/physmem.c:1869
#4 0x0000555555dfc456 in qemu_ram_alloc_internal (size=18446744073641918464, max_size=18446744073641918464, resized=0x0, host=0x0, resizeable=false, share=false, mr=0x555557db1500, errp=0x7fffffffdb60)
at ../softmmu/physmem.c:2070
#5 0x0000555555dfc539 in qemu_ram_alloc (size=18446744073641918464, share=false, mr=0x555557db1500, errp=0x7fffffffdb60) at ../softmmu/physmem.c:2089
#6 0x0000555555ec77f6 in memory_region_init_ram_shared_nomigrate (mr=0x555557db1500, owner=0x0, name=0x55555622e09f "RAM", size=18446744073641918464, share=false, errp=0x7fffffffdbf8) at ../softmmu/memory.c:1550
#7 0x0000555555ec7764 in memory_region_init_ram_nomigrate (mr=0x555557db1500, owner=0x0, name=0x55555622e09f "RAM", size=18446744073641918464, errp=0x7fffffffdbf8) at ../softmmu/memory.c:1535
#8 0x0000555555ecc6d7 in memory_region_init_ram (mr=0x555557db1500, owner=0x0, name=0x55555622e09f "RAM", size=18446744073641918464, errp=0x5555567b2be0 <error_fatal>) at ../softmmu/memory.c:3207
#9 0x0000555555bf7a2a in allocate_ram (top=0x5555568ff300, name=0x55555622e09f "RAM", addr=34561589248, size=18446744073641918464) at ../hw/arm/xnu_mem.c:120
#10 0x0000555555c2e915 in T8030_memory_setup (machine=0x555556b00410) at ../hw/arm/t8030.c:593
#11 0x0000555555c307a5 in T8030_machine_init (machine=0x555556b00410) at ../hw/arm/t8030.c:1012
#12 0x0000555555b84944 in machine_run_board_init (machine=0x555556b00410) at ../hw/core/machine.c:1134
#13 0x0000555555e3c63d in qemu_init (argc=5, argv=0x7fffffffe128, envp=0x7fffffffe158) at ../softmmu/vl.c:4369
#14 0x0000555555849e75 in main (argc=5, argv=0x7fffffffe128, envp=0x7fffffffe158) at ../softmmu/main.c:49
from qemu-t8030.
UPDATE: Follow this guide
You need to set -M 4G
or something like that I believe
qemu-t8030/build/qemu-system-aarch64 -s -M t8030,kernel-filename=kernelcache.research.iphone12b.out,dtb-filename=Firmware/all_flash/DeviceTree.n104ap.im4p.out,kern-cmd-args="debug=0x8 kextlog=0xffff io=0xfff rd=md0 serial=2 -v nvme=0xffff pmgr-debug=0xff",ramdisk-filename=038-44087-125.dmg.out,xnu-ramfb=on,trustcache-filename=Firmware/038-44087-125.dmg.trustcache.out -cpu max -m 4G -serial mon:stdio -monitor telnet:127.0.0.1:1235,server,nowait -smp 6
The tools for unpacking im4p can be found at https://github.com/TrungNguyen1909/xnu-qemu-arm64-tools
The ramdisk FS need to be decompressed. resize it with something like
hdiutil resize -size 512M -imagekey diskimage-class=CRawDiskImage 038-44087-125.dmg.out
attach:
hdiutil attach -imagekey diskimage-class=CRawDiskImage 038-44087-125.dmg.out
To decompress, do sudo afscexpand /path/to/mount/point
or do a rsync -av
back and forth.
That should get launchd up.
P/s: .out
files are extracted using scripts inside xnu-qemu-arm64-tools/bootstrap_scripts/
from qemu-t8030.
Thanks, @TrungNguyen1909 , I get this far:
BSD root: md0, major 3, minor 0
apfs_vfsop_mountroot:2214: apfs: mountroot called!
apfs_vfsop_mount:1777: unable to root from devvp <ptr> (root_device): 2
apfs_vfsop_mountroot:2218: apfs: mountroot failed, error: 2
hfs: mounted AzulD18D52.arm64eCustomerRamDisk on device b(3, 0)
dyld: setting comm page to 0x0
Attempting to forcibly halt cpu 4
cpu 4 failed to halt with error -5: halt not supported for this configuration
Debugger synchronization timed out; waited 10000000 nanoseconds
IOPlatformPanicAction -> AppleT8030PMGR
Kernel data abort. at pc 0xfffffff008bcad2c, lr 0xfffffff008bcad24 (saved state: 0xffffffe80e4ab2d0)
x0: 0x0000000000000000 x1: 0x0000000000000014 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000062 x5: 0x000000023b040000 x6: 0xffffffe8001e1d80 x7: 0x0988fff0078f14f0
x8: 0xffffffe80e4c0048 x9: 0x0000000000000028 x10: 0x00000000fffd8000 x11: 0xffffffe4cda82e10
x12: 0x000000007fffffff x13: 0x00000000ffffffff x14: 0x0000000000000000 x15: 0x0000000000000010
x16: 0xfffffff0078f1148 x17: 0xfffffff0078f1148 x18: 0x0000000000000000 x19: 0xffffffe8001c0000
x20: 0x0000000000088000 x21: 0xffffffe8001e23a0 x22: 0xcda1ffe8001c0000 x23: 0x000000023b084000
x24: 0x0000000000084000 x25: 0x000000023d284000 x26: 0x0000000000000001 x27: 0xfffffff11a306a50
x28: 0xfffffff009aa8000 fp: 0xffffffe80e4ab660 lr: 0xfffffff008bcad24 sp: 0xffffffe80e4ab620
pc: 0xfffffff008bcad2c cpsr: 0x204003c4 esr: 0x96000010 far: 0xffffffe80e4c0048
panic(cpu 5 caller 0xfffffff008178694): initproc exited -- exit reason namespace 6 subcode 0x5 description: dyld cache load error: shared cache file open() failed
Library not loaded: /usr/lib/system/libcommonCrypto.dylib
Referenced from: /usr/lib/libSystem.B.dylib
Reason: no suitable image found. Did find:
/usr/lib/system/libcommonCrypto.dylib: code signature invalid for '/usr/lib/system/libcommonCrypto.dylib'
/usr/lib/system/libcommonCrypto.dylib: stat() failed with errno=25
/usr/lib/system/libcommonCrypto.dylib: unknown file type, first eight bytes: 0x01 0x0D 0x01 0xC0 0x0B 0x40 0x01 0x0D
although the exact error message can vary slightly.
from qemu-t8030.
The ramdisk FS need to be decompressed. resize it with something like
hdiutil resize -size 512M -imagekey diskimage-class=CRawDiskImage 038-44087-125.dmg.out
attach:
hdiutil attach -imagekey diskimage-class=CRawDiskImage 038-44087-125.dmg.out
To decompress, do
sudo afscexpand /path/to/mount/point
or do arsync -av
back and forth.
For the rsync -av
method, you need to erase the HFS+ partition before copy back.
from qemu-t8030.
Thanks, looks like the disk was too small (I used 128M instead of 512M) and this caused afscexpand
to silently fail. Doh!
So this is what I get now:
BSD root: md0, major 3, minor 0
apfs_vfsop_mountroot:2214: apfs: mountroot called!
apfs_vfsop_mount:1777: unable to root from devvp <ptr> (root_device): 2
apfs_vfsop_mountroot:2218: apfs: mountroot failed, error: 2
hfs: mounted AzulD18D52.arm64eCustomerRamDisk on device b(3, 0)
dyld: setting comm page to 0x0
Thu Jan 1 00:05:50 1970 com.apple.xpc.launchd[1] <Notice>: hello
Darwin Bootstrapper Version 7.0.0: Sun Dec 20 17:53:52 PST 2020; root:libxpc_executables-2038.80.3~5/launchd/RELEASE_ARM64E
boot-args = debug=0x8 kextlog=0xffff io=0xfff rd=md0 serial=2 -v nvme=0xffff pmgr-debug=0xff
Thu Jan 1 00:05:50 1970 localhost com.apple.xpc.launchd[1] <Notice>: Restore environment starting.
Thu Jan 1 00:07:20 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering ondemand mode
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fsck
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: mount-phase-1
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: data-protection
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-obliteration
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: commit-boot-mode
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: boot-mode committed: (null)
Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: restore-datapartition
Thu Jan 1 00:07:23 1970 localhost com.apple.xpc.launchd[1] <Notice>: restore-datapartition: optional boot task not present
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: mount-phase-2
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: init-with-data-volume
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: MSUEarlyBootTask
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fips
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: keybag
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: usermanagerd
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: init_featureflags
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fud
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: tzinit
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-restore
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-demo-restore
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: sysstatuscheck
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: prng_seedctl
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Error>: Unable to open /System/Library/xpc/launchd.plist [2:No such file or directory]
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: launchd_cache_loader
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Error>: No MRM cache found
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Warning>: Unable to load cache
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: launchd UUID: 2AA0C171-F3A9-3C91-85B9-AAB0371DAC25
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Early boot complete. Continuing system boot.
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering bootstrap mode
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker) <Warning>: Unknown key for Boolean: EnablePressureExit
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.KeyMaker (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.PurpleReverseProxy.ramdisk (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.diskimagesiod.ram (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.restored_external (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemonsAltAccount, error = 2: No such file or directory
Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemons, error = 2: No such file or directory
Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /AppleInternal/Library/LaunchDaemons, error = 2: No such file or directory
Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting bootstrap mode
Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting ondemand mode
Attempting to forcibly halt cpu 0
cpu 0 failed to halt with error -5: halt not supported for this configuration
Attempting to forcibly halt cpu 1
cpu 1 failed to halt with error -5: halt not supported for this configuration
Attempting to forcibly halt cpu 2
cpu 2 failed to halt with error -5: halt not supported for this configuration
Attempting to forcibly halt cpu 4
cpu 4 failed to halt with error -5: halt not supported for this configuration
Attempting to forcibly halt cpu 5
cpu 5 failed to halt with error -5: halt not supported for this configuration
Debugger synchronization timed out; waited 10000000 nanoseconds
IOPlatformPanicAction -> AppleT8030PMGR
Kernel data abort. at pc 0xfffffff008bcad2c, lr 0xfffffff008bcad24 (saved state: 0xffffffe80de2b3c0)
x0: 0x0000000000000000 x1: 0x0000000000000014 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000062 x5: 0x000000023b040000 x6: 0xffffffe80070dd80 x7: 0x0988fff0078f14f0
x8: 0xffffffe80dde0048 x9: 0x0000000000000028 x10: 0x00000000fffd8000 x11: 0xffffffe4cdfad230
x12: 0x000000007fffffff x13: 0x00000000ffffffff x14: 0x0000000000000000 x15: 0x0000000000000010
x16: 0xfffffff0078f1148 x17: 0xfffffff0078f1148 x18: 0x0000000000000000 x19: 0xffffffe8006ec000
x20: 0x0000000000088000 x21: 0xffffffe80070e3a0 x22: 0xcda1ffe8006ec000 x23: 0x000000023b084000
x24: 0x0000000000084000 x25: 0x000000023d284000 x26: 0x0000000000000001 x27: 0xfffffff14a30e910
x28: 0xfffffff009aa8000 fp: 0xffffffe80de2b750 lr: 0xfffffff008bcad24 sp: 0xffffffe80de2b710
pc: 0xfffffff008bcad2c cpsr: 0x204003c4 esr: 0x96000010 far: 0xffffffe80dde0048
panic(cpu 3 caller 0xfffffff007a7ec68): "Ticket spinlock timeout; start: 0x41871adaf, end: 0x4189f746f, current: 0x418a0628a, lock: 0xfffffff009aa8f80, *lock: 0x12, waiting for 0x15, owner: 0"
Do you get a similar result?
from qemu-t8030.
It can be workarounded by removing pmgr-debug=0xff
boot args.
This is due to the hacky PMGR implementation which I haven't got enough time to work on.
Thanks, looks like the disk was too small (I used 128M instead of 512M) and this caused
afscexpand
to silently fail. Doh!So this is what I get now:
BSD root: md0, major 3, minor 0 apfs_vfsop_mountroot:2214: apfs: mountroot called! apfs_vfsop_mount:1777: unable to root from devvp <ptr> (root_device): 2 apfs_vfsop_mountroot:2218: apfs: mountroot failed, error: 2 hfs: mounted AzulD18D52.arm64eCustomerRamDisk on device b(3, 0) dyld: setting comm page to 0x0 Thu Jan 1 00:05:50 1970 com.apple.xpc.launchd[1] <Notice>: hello Darwin Bootstrapper Version 7.0.0: Sun Dec 20 17:53:52 PST 2020; root:libxpc_executables-2038.80.3~5/launchd/RELEASE_ARM64E boot-args = debug=0x8 kextlog=0xffff io=0xfff rd=md0 serial=2 -v nvme=0xffff pmgr-debug=0xff Thu Jan 1 00:05:50 1970 localhost com.apple.xpc.launchd[1] <Notice>: Restore environment starting. Thu Jan 1 00:07:20 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering ondemand mode Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fsck Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: mount-phase-1 Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: data-protection Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-obliteration Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: commit-boot-mode Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: boot-mode committed: (null) Thu Jan 1 00:07:21 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: restore-datapartition Thu Jan 1 00:07:23 1970 localhost com.apple.xpc.launchd[1] <Notice>: restore-datapartition: optional boot task not present Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: mount-phase-2 Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: init-with-data-volume Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: MSUEarlyBootTask Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fips Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: keybag Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: usermanagerd Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: init_featureflags Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: fud Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: tzinit Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-restore Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: finish-demo-restore Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: sysstatuscheck Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: prng_seedctl Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Error>: Unable to open /System/Library/xpc/launchd.plist [2:No such file or directory] Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Skipping boot-task: launchd_cache_loader Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Error>: No MRM cache found Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Warning>: Unable to load cache Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: launchd UUID: 2AA0C171-F3A9-3C91-85B9-AAB0371DAC25 Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] <Notice>: Early boot complete. Continuing system boot. Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering bootstrap mode Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker) <Warning>: Unknown key for Boolean: EnablePressureExit Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.KeyMaker (lint): Unable to find persona with type 6: kpersona_find returned -1 Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.PurpleReverseProxy.ramdisk (lint): Unable to find persona with type 6: kpersona_find returned -1 Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.diskimagesiod.ram (lint): Unable to find persona with type 6: kpersona_find returned -1 Thu Jan 1 00:07:24 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.restored_external (lint): Unable to find persona with type 6: kpersona_find returned -1 Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemonsAltAccount, error = 2: No such file or directory Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemons, error = 2: No such file or directory Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /AppleInternal/Library/LaunchDaemons, error = 2: No such file or directory Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting bootstrap mode Thu Jan 1 00:07:25 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting ondemand mode Attempting to forcibly halt cpu 0 cpu 0 failed to halt with error -5: halt not supported for this configuration Attempting to forcibly halt cpu 1 cpu 1 failed to halt with error -5: halt not supported for this configuration Attempting to forcibly halt cpu 2 cpu 2 failed to halt with error -5: halt not supported for this configuration Attempting to forcibly halt cpu 4 cpu 4 failed to halt with error -5: halt not supported for this configuration Attempting to forcibly halt cpu 5 cpu 5 failed to halt with error -5: halt not supported for this configuration Debugger synchronization timed out; waited 10000000 nanoseconds IOPlatformPanicAction -> AppleT8030PMGR Kernel data abort. at pc 0xfffffff008bcad2c, lr 0xfffffff008bcad24 (saved state: 0xffffffe80de2b3c0) x0: 0x0000000000000000 x1: 0x0000000000000014 x2: 0x0000000000000000 x3: 0x0000000000000000 x4: 0x0000000000000062 x5: 0x000000023b040000 x6: 0xffffffe80070dd80 x7: 0x0988fff0078f14f0 x8: 0xffffffe80dde0048 x9: 0x0000000000000028 x10: 0x00000000fffd8000 x11: 0xffffffe4cdfad230 x12: 0x000000007fffffff x13: 0x00000000ffffffff x14: 0x0000000000000000 x15: 0x0000000000000010 x16: 0xfffffff0078f1148 x17: 0xfffffff0078f1148 x18: 0x0000000000000000 x19: 0xffffffe8006ec000 x20: 0x0000000000088000 x21: 0xffffffe80070e3a0 x22: 0xcda1ffe8006ec000 x23: 0x000000023b084000 x24: 0x0000000000084000 x25: 0x000000023d284000 x26: 0x0000000000000001 x27: 0xfffffff14a30e910 x28: 0xfffffff009aa8000 fp: 0xffffffe80de2b750 lr: 0xfffffff008bcad24 sp: 0xffffffe80de2b710 pc: 0xfffffff008bcad2c cpsr: 0x204003c4 esr: 0x96000010 far: 0xffffffe80dde0048 panic(cpu 3 caller 0xfffffff007a7ec68): "Ticket spinlock timeout; start: 0x41871adaf, end: 0x4189f746f, current: 0x418a0628a, lock: 0xfffffff009aa8f80, *lock: 0x12, waiting for 0x15, owner: 0"
Do you get a similar result?
from qemu-t8030.
Thanks!
This gets me a step further:
Thu Jan 1 00:07:04 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering bootstrap mode
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker) <Warning>: Unknown key for Boolean: EnablePressureExit
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.KeyMaker (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.PurpleReverseProxy.ramdisk (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.diskimagesiod.ram (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: com.apple.restored_external (lint): Unable to find persona with type 6: kpersona_find returned -1
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemonsAltAccount, error = 2: No such file or directory
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /System/Library/NanoLaunchDaemons, error = 2: No such file or directory
Thu Jan 1 00:07:06 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Error>: Failed to bootstrap path: path = /AppleInternal/Library/LaunchDaemons, error = 2: No such file or directory
Thu Jan 1 00:07:07 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting bootstrap mode
Thu Jan 1 00:07:07 1970 localhost com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: exiting ondemand mode
Thu Jan 1 00:08:02 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker.3) <Warning>: Could not find and/or execute program specified by service: 2: No such file or directory: /usr/local/bin/KeyMaker
Thu Jan 1 00:08:02 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker.3) <Notice>: Service setup event to handle failure and will not launch until it fires.
Thu Jan 1 00:08:02 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker.3) <Error>: Missing executable detected. Job: 'com.apple.KeyMaker' Executable: '/usr/local/bin/KeyMaker'
Thu Jan 1 00:08:18 1970 localhost com.apple.xpc.launchd[1] (com.apple.KeyMaker.3) <Warning>: Service exited with abnormal code: 78
Thu Jan 1 00:09:13 1970 localhost com.apple.xpc.launchd[1] (com.apple.restored_external.4) <Warning>: Binary is improperly signed.
Thu Jan 1 00:09:13 1970 localhost com.apple.xpc.launchd[1] <Error>: Host-level exception raised: pid = 4, thread = 0x1107, exception type = 0xd, codes = { 12884901890 }, states = { 0 }
Are the errors about the missing files and the improperly signed executable?
Should we be able to interact with the device over USB at this point (once an USB controller is emulated)? I can see the device-tree lists a usb-drd device like this:
+--usb-drd:
| | | +--clock-gates 8 bytes: (null) 0x67 0x00 0x00 0x00 0xf5 0x00 0x00 0x00
| | | +--AAPL,phandle 4 bytes: (null) 0x8d 0x00 0x00 0x00
| | | +--configuration-string 19 bytes: stdMuxPTPEthValIDA 0x73 0x74 0x64 0x4d 0x75 0x78 0x50 0x54 0x50 0x45 0x74 0x68 0x56 0x61 0x6c 0x49 0x44 0x41 0x00
| | | +--atc-phy-parent 4 bytes: (null) 0x8c 0x00 0x00 0x00
| | | +--function-dock_parent 8 bytes: (null) 0xf3 0x00 0x00 0x00 0x50 0x63 0x63 0x61
| | | +--tunable 80 bytes: (null) 0x00 0x00 0x00 0x00 0x1c 0xc1 0x00 0x00 0xf0 0x00 0xe0 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x2c 0xc1 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x64 0xc1 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0xc6 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x40 0x00 0x00 0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x00 0xff 0x00 0x00 0x00 0x33 0x00 0x00 0x00
| | | +--iommu-parent 4 bytes: (null) 0x91 0x00 0x00 0x00
| | | +--host-mac-address 40 bytes: (null) 0x6d 0x61 0x63 0x61 0x64 0x64 0x72 0x2f 0x77 0x69 0x66 0x69 0x61 0x64 0x64 0x72 0x2c 0x73 0x79 0x73 0x63 0x66 0x67 0x2f 0x57 0x4d 0x61 0x63 0x2f 0x36 0x2c 0x7a 0x65 0x72 0x6f 0x65 0x73 0x2f 0x36 0x00
| | | +--device-mac-address 39 bytes: macaddr/ethaddr,syscfg/EMac/6,zeroes/6 0x6d 0x61 0x63 0x61 0x64 0x64 0x72 0x2f 0x65 0x74 0x68 0x61 0x64 0x64 0x72 0x2c 0x73 0x79 0x73 0x63 0x66 0x67 0x2f 0x45 0x4d 0x61 0x63 0x2f 0x36 0x2c 0x7a 0x65 0x72 0x6f 0x65 0x73 0x2f 0x36 0x00
| | | +--bus-number 4 bytes: (null) 0x00 0x00 0x00 0x00
| | | +--name 8 bytes: usb-drd
| | | +--interrupt-parent 4 bytes: (null) 0x1a 0x00 0x00 0x00
| | | +--port-type 4 bytes: (null) 0x0c 0x00 0x00 0x00
| | | +--compatible 28 bytes: (null) 0x75 0x73 0x62 0x2d 0x64 0x72 0x64 0x2c 0x74 0x38 0x30 0x33 0x30 0x00 0x75 0x73 0x62 0x2d 0x64 0x72 0x64 0x2c 0x74 0x38 0x30 0x32 0x37 0x00
| | | +--clock-ids 4 bytes: (null) 0x4b 0x01 0x00 0x00
| | | +--interrupts 16 bytes: (null) 0xf1 0x01 0x00 0x00 0xf2 0x01 0x00 0x00 0xf3 0x01 0x00 0x00 0xf4 0x01 0x00 0x00
| | | +--tunable_setting 72 bytes: (null) 0x1c 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xf0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x64 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
| | | +--port-number 4 bytes: (null) 0x01 0x00 0x00 0x00
| | | +--device_type 8 bytes: (null) 0x75 0x73 0x62 0x2d 0x64 0x72 0x64 0x00
| | | +--eps-dir-bitmap 4 bytes: (null) 0x64 0x02 0x00 0x00
| | | +--reg 48 bytes: (null) 0x00 0x00 0x01 0x39 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x39 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xc0 0x01 0x39 0x00 0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x00 0x00 0x00 0x00
+--usb-drd-port-hs:
| | | | +--port 4 bytes: (null) 0x01 0x00 0x00 0x00
| | | | +--AAPL,phandle 4 bytes: (null) 0x8e 0x00 0x00 0x00
| | | | +--port-speed 4 bytes: (null) 0x02 0x00 0x00 0x00
| | | | +--port-current-limit 4 bytes: (null) 0x32 0x00 0x00 0x00
| | | | +--device_type 16 bytes: (null) 0x75 0x73 0x62 0x2d 0x64 0x72 0x64 0x2d 0x70 0x6f 0x72 0x74 0x2d 0x68 0x73 0x00
| | | | +--name 16 bytes: usb-drd-port-hs
| | | | +--port-type 4 bytes: (null) 0x02 0x00 0x00 0x00
which seems to indicate that the USB device is using the 0x390100
- 0x390200
, 0x390200
- 0x390300
and 0x3901c0
- 0x39d800
address spaces (the last one overlaps with the first) and using the 0x01f1
, 0x1f2
, 0x01f3
, 0x01f4
interrupts, right?
from qemu-t8030.
Are the errors about the missing files and the improperly signed executable?
This is the current status of the project, I haven't gone any further than that.
Should we be able to interact with the device over USB at this point (once an USB controller is emulated)? I can see the device-tree lists a usb-drd device like this:
Hopefully.
which seems to indicate that the USB device is using the
0x390100
-0x390200
,0x390200
-0x390300
and0x3901c0
-0x39d800
address spaces (the last one overlaps with the first) and using the0x01f1
,0x1f2
,0x01f3
,0x01f4
interrupts, right?
These are actually offsets from the arm-io
SOC base physical address.
from qemu-t8030.
Thanks. I've made a very naive attempt at registering read/write handlers for the USB address space: https://github.com/qmfrederik/qemu-t8030/commit/5eee15de406ba6a344c4e4b4769b987e7594efee, but it looks like the handlers are not being invoked.
I'm not sure whether this is because there's an obvious bug in my code, or because the interrupts are not registered.
(never mind my comment about the AIC, I can see there's a hw/intc/apple-aic.c
file)
from qemu-t8030.
UPDATE: You can find the updated tutorial here
from qemu-t8030.
have you tested this on macOS too? i saw a "guide" for compiling this on macOS, but it doesn't work, at least on Big Sur (11.2.2). this is a log with the "macOS guide" (https://github.com/TrungNguyen1909/qemu-t8030/pull/6/checks (i tried both build_aarch64_softmmu_macos, and build_macos_all)), but the same thing happen using you commands.
from qemu-t8030.
What errors do you get?
I work on a Catalina machine
have you tested this on macOS too? i saw a "guide" for compiling this on macOS, but it doesn't work, at least on Big Sur (11.2.2). this is a log with the "macOS guide" (https://github.com/TrungNguyen1909/qemu-t8030/pull/6/checks (i tried both build_aarch64_softmmu_macos, and build_macos_all)), but the same thing happen using you commands.
from qemu-t8030.
oh seems like i forgot to include the link for the log, here it is https://ghostbin.com/paste/imt1R
from qemu-t8030.
@cutecodee, you are building on a M1 machine, right?
from qemu-t8030.
@TrungNguyen1909 Yes, I can get launchd up with the ans-dev
branch:
BSD root: disk0s1, major 1, minor 1
virtual bool AppleEmbeddedNVMeController::StartController()::1547:Setting NAND status to Ready
virtual bool AppleEmbeddedNVMeController::StartController()::1547:Setting NAND status to Ready
apfs_vfsop_mountroot:2188: apfs: mountroot called!
dev_init:297: disk0s1 device accelerated crypto: 3 (compiled @ Aug 12 2020 22:19:57)
dev_init:300: disk0s1 device_handle block size 512 block count 15030424 features 6 internal solidstate
nx_kernel_mount:1134: disk0s1 initializing cache w/hash_size 4096 and cache size 10064
nx_kernel_mount:1402: disk0s1 checkpoint search: largest xid 56, best xid 56 @ 3
apfs_vfsop_mount:1848: Promoter has been locked for disk0s1
failed to find root-snapshot-name snapshot
handle_mount:627: vol-uuid: 5133F48D-5D9E-499B-A8BA-45E692E36FD9 block size: 4096 block count: 1878803 (unencrypted; flags: 0x1; features: 8.0.12)
handle_mount:640: setting dev block size to 4096 from 512
nx_volume_group_update:6634: Volume AzulSeed18A5351d.N104N841DeveloperOS is not in a volume group
apfs_vfsop_mount:2171: disk0s1s1:0 mounted volume: AzulSeed18A5351d.N104N841DeveloperOS
void AppleNVMeController::LowPowerTimerEvent()::1188:
void IONVMeController::CheckForTimeout(IOTimerEventSource *)::5214:
dyld: setting comm page to 0x0
Thu Jan 1 00:02:16 1970 com.apple.xpc.launchd[1] <Notice>: hello
Darwin Bootstrapper Version 7.0.0: Mon Aug 10 04:09:14 PDT 2020; root:libxpc_executables-2038.0.13~13/launchd/RELEASE_ARM64E
boot-args = debug=0x8 kextlog=0xffff serial=2 -v nvme=0xffff rd=disk0s1
Thu Jan 1 00:02:17 1970 com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice>: entering ondemand mode
Thu Jan 1 00:02:17 1970 localhost com.apple.xpc.launchd[1] <Notice>: Doing boot task: fsck
void IONVMeController::CheckForTimeout(IOTimerEventSource *)::5214:
Attempting to forcibly halt cpu 1
cpu 1 failed to halt with error -5: halt not supported for this configuration
Debugger synchronization timed out; waited 10000000 nanoseconds
IOPlatformPanicAction -> AppleANS2NVMeController
IOPlatformPanicAction -> RTBuddyV2
IOPlatformPanicAction -> RTBuddyV2
IOPlatformPanicAction -> AppleT8030PMGR
Kernel data abort. at pc 0xfffffff008b2e0ec, lr 0xfffffff008b2e0e4 (saved state: 0xffffffe815f82210)
x0: 0x0000000000000000 x1: 0x0000000000000014 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000062 x5: 0x000000023b040000 x6: 0xffffffe8004c1d48 x7: 0x0988fff0078b70b8
x8: 0xffffffe80e848048 x9: 0x0000000000000028 x10: 0x00000000fffd8000 x11: 0xffffffe4cdd7af80
x12: 0x000000007fffffff x13: 0x00000000ffffffff x14: 0x0000000000000000 x15: 0x0000000000000010
x16: 0xfffffff0078b6d10 x17: 0xfffffff0078b6d10 x18: 0x0000000000000000 x19: 0xffffffe8004a0000
x20: 0x0000000000088000 x21: 0xffffffe8004c2368 x22: 0xcda1ffe8004a0000 x23: 0x000000023b084000
x24: 0x0000000000084000 x25: 0x000000023d284000 x26: 0x0000000000000001 x27: 0xfffffff1482b0a40
x28: 0xfffffff0099a6000 fp: 0xffffffe815f825a0 lr: 0xfffffff008b2e0e4 sp: 0xffffffe815f82560
pc: 0xfffffff008b2e0ec cpsr: 0x204003c4 esr: 0x96000010 far: 0xffffffe80e848048
panic(cpu 4 caller 0xfffffff008128350): Kernel data abort. at pc 0xfffffff007a3c458, lr 0xfffffff007a3d3a8 (saved state: 0xffffffe815f82e90)
x0: 0xfffffff0076c89b8 x1: 0xffffffe80060c000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0xffffffe19bd74080 x5: 0x0000000000000000 x6: 0x30767aa33a29cd7d x7: 0xfffffff1482b1080
x8: 0xffffffe80060c000 x9: 0x0000000000000000 x10: 0x0000000000000003 x11: 0xffffffe80060c008
x12: 0xfffffff0099abba8 x13: 0x00000000ff866f5d x14: 0x0000000000000000 x15: 0x0000000000000001
x16: 0xfffffff0076cb028 x17: 0xffffffe815f83230 x18: 0x0000000000000000 x19: 0xffffffe19b9e5020
x20: 0xffffffe815f83380 x21: 0x0000000000000001 x22: 0x0000000000050000 x23: 0x0000000000000000
x24: 0x0000000000020090 x25: 0x000000000000fab0 x26: 0xfffffff009a33000 x27: 0x000000000005ea00
x28: 0xffffffe19bdbdf80 fp: 0xffffffe815f831e0 lr: 0xfffffff007a3d3a8 sp: 0xffffffe815f831e0
pc: 0xfffffff007a3c458 cpsr: 0x60400204 esr: 0x96000006 far: 0x0000000000000048
I had some issues preparing the OS disk using your instructions (basically a timeout when running the detach command), so I just attached the original .dmg
files to the guest using -drive file=OS.dmg,format=dmg,if=none,id=drive.1
.
I'm not sure whether the error is related to that (it may very well be); do you get any further in boot process on your side?
from qemu-t8030.
@qmfrederik have you decompress the fs?
from qemu-t8030.
@TrungNguyen1909 No, it's not decompressed; I got a timeout when detaching the disk.
The logs seemed to indicate the kernel could find the disk and mount the file system, which would mean that the ANS/NVMe controller code you added works, so just wanted to share that part of the good news ;-).
from qemu-t8030.
@cutecodee, you are building on a M1 machine, right?
nope, i'm using an x86 machine
from qemu-t8030.
@cutecodee, you might want to try to run ./configure
again with the correct command, the correct flags are --target-list=aarch64-softmmu --disable-capstone --disable-slirp
.
Your build seems to fail while building capstone, but we are not using capstone here.
from qemu-t8030.
https://pastebin.com/mCrxK353 that's the output
from qemu-t8030.
@cutecodee Looks like you're on Xcode 12.5 beta. Is it possible for you to try this with an earlier Xcode version?
from qemu-t8030.
https://pastebin.com/mCrxK353 that's the output
@cutecodee, try make
it again, please.
from qemu-t8030.
from qemu-t8030.
Closed. Tutorial
from qemu-t8030.
Related Issues (20)
- could not read keymap file: 'en-us'
- stuck in tx_flush:1075 after restore HOT 1
- Commit latest version with working Springboard?
- Getting syslog
- Stuck on trigger of restore HOT 3
- Springboard support? HOT 19
- iPhone12,1 iOS 15.6 beta1 97% completed restore then fail HOT 3
- Compilation failure with Homebrew LLVM on Apple Silicon Mac HOT 2
- Watchdog panics on first boot using fuzz branch HOT 1
- error expected identifier before numeric constant when compiling using MSYS2 MINGW64 on windows 11 pro HOT 7
- Can we use delete snapshot instead of rename snapshot? HOT 3
- Can ios-vm use the network? HOT 1
- help getting sshd to work HOT 4
- Need help with GUI HOT 2
- libimobiledevice error
- Idevicerestore cannot find device
- iPhone emulator
- cannot build on debian 12 error: 'CURLOPT_PROTOCOLS' is deprecated
- userspace panic: boot task failure: mount-phase-1 - exited due to exit(66) HOT 3
- Error "0: AMRestoreErrorDomain: failed to request root ticket" HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qemu-t8030.