I would like to collect all available (and useful) public information about RFS and XSR.
XSR™(eXtended Sector Remapper)
Ultimate Software Solution for High-Performance Flash Storage
SAMSUNG XSR is a flash management software solution for OneNAND flash memory. SAMSUNG XSR is independent of OS, and manages high-capacity data and codes quickly and safely. SAMSUNG XSR has the same functionalities with well-known flash translation layer (FTL).
Brochure
Porting Guide
Application Notes
Click to expand...
Click to collapse
Source: Samsung Flash Software
RFS™(Robust FAT File System™)
flash software solution for Linux based mobile device
SAMSUNG RFS is an ideal flash software solution for Linux-based embedded system using OneNAND flash memory. RFS delivers the optimal flash management functionalities for OneNAND flash memory with SAMSUNG's innovative software technology.
Brochure
Porting Guide
Application Notes
Click to expand...
Click to collapse
Source: Samsung Flash Software
List of downloadable documents:
(sorted by priority for reading/ level of details, top to down)
RFS:
Samsung: Introduction to Samsung’s Linux Flash File System - RFS - Application Note v1.2 (begin with this to get a clue)
Samsung: Linux RFS v1.3.0 Porting Guide
Samsung: Linux RFS Power Off Recovery - Technical Paper
Samsung: Fast Seek Access in Linux RFS - Technical Paper
Samsung: Linux RFS v1.2.2 Porting Guide (contains also information about XSR)
XSR:
Samsung: XSR 1.5 Wear Leveling - Application Note
Samsung: XSR 1.5 Bad Block Management XSR 1.5 Bad Block Management - Application Note
Samsung: XSR v1.6.1 Porting Guide (very detailed infos about wearleveling, bml, stl : must-have-read)
Samsung: XSR v1.5.2 Porting Guide (only listed, because it contains a chancelog)
Samsung: XSR v1.5.1 Pre-programming Guide (some internals - not all but very interesting)
spica-developers.net: RFS and XSR related header files in /include/linux (leaked with spica source code)
spica-developers.net: XSR related precompiled binary files (maybe not usable on SGS)
github: LinuStoreIII_1.2.0 - FSR adoption - tfsr driver in <kernel source dir>/drivers/tfsr (read the XSR porting guide to understand this code, thx to ttabbal)
Not so useful, but contains alot of configuration details:
Samsung: VFAT vs. RFS performance analysis on Apollon_Plus_Rev1.1 board by using IOzone
Samsung: UniStore II v1.5.1 Installation Guide
Missing documents:
(known to be existent by reference, but maybe not available to public)
RFS v1.3.0 Programmer’s Guide, Samsung Electronics, Co., Ltd.
LinuStoreII Utility Guide, Samsung Electronics Co., Ltd.
LinuStoreII Porting Guide, Samsung Electronics Co., Ltd.
Samsung Electornics RFS v1.2 Programming Guide
RFS v1.2.2 Programmer’s Guide, Samsung Electronics, Co., Ltd...
RFS v1.2.2 Ftools Utility Guide, Samsung Electronics Co., Ltd...
( http://www.samsung.com/Products/Semiconductor/FlashSW/XSR_Porting_Guide.htm - page does not exist any more)
DPM manual, MontaVista Linux Consumer Electronics Edition 3.1
XSR v1.5.1 Part 1. Sector Translation Layer Programmer’s Guide, Samsung Electronics, Co., LTD, APR-07-2006
XSR v1.5.1 Part 2. Block Management Layer Programmer’s Guide, Samsung Electronics, Co., LTD, APR-07-2006
XSR v1.5.1 Porting Guide, Samsung Electronics, Co., LTD, APR-07-2006
XSR v1.6.1 Part 1. Sector Translation Layer Programmer’s Guide, Samsung Electronics, Co., LTD, NOV-2007
XSR v1.6.1 Part 2. Block Management Layer Programmer’s Guide, Samsung Electronics, Co., LTD, NOV-2007
Not reviewed documents:
Samsung: Linux RFS v1.2.0 Porting Guide
Dynamic Power Management for Embedded Systems" (IBM and MontaVista Software)
http://www.research.ibm.com/arl/publications/papers/DPM_V1.1.pdf
Rules for posting in this thread:
Post only new information!
(if you don't know if a information is new, post it, but fulfill the other rules!)
No duplicates!
(check this before posting)
No questions!
No praise posts!
placeholder
Linustore porting guide.
http://www.samsung.com/global/busin...cts/flash/downloads/RFS_130_Porting_Guide.pdf
XSR v1.6.1 Part 2
http://www.samsung.com/global/busin...onmemory/downloads/xsr_v161_porting_guide.pdf
RFS v1.2.2 Ftools Utility Guide, Samsung Electronics Co., Ltd...
http:// www .samsung. com/Products/Semiconductor/FlashSW/XSR_Porting_Guide.htm (page does not exist any more)
http://www.samsung.com/global/busin...ts/flash/downloads/RFS_v122_Porting_Guide.pdf
RFS v1.2.2 Programmer’s Guide, Samsung Electronics, Co., Ltd...
http://www.samsung.com/global/busin.../applicationnote/rfs_v12_application_note.pdf
Samsung's kernel source has all the files mentioned in the XSR porting guide.
<kernel source dir>/drivers/tfsr
Interesting to note, we have source for the low-level OneNAND drivers in there... BML, OAM, PAM source as well, all this is for interfacing to the closed kernel module, but it might be possible to adapt the LLD OneNAND driver to interface to the kernel like the MTD driver does, allowing us to use yaffs2 or nilfs and skip Samsungs propriatary wear leveling type code, thus eliminating the FSR module. I have not read the source enough to be able to say for sure how well something like that would work. It would be nice if I could, for example, start the phone up with just ADB running so I could fool with the kernel and use a shell without the rest of the OS loading.
There's also a driver for OneNAND in drivers/mtd/onenand .... interesting.
I wonder if I can tell it to boot from the SD card and ignore the OneNAND devices completely. Then I could fuss with them seperately.
ragin said:
Linustore porting guide.
http://www.samsung.com/global/busin...cts/flash/downloads/RFS_130_Porting_Guide.pdf
Click to expand...
Click to collapse
ragin said:
XSR v1.6.1 Part 2
http://www.samsung.com/global/busin...onmemory/downloads/xsr_v161_porting_guide.pdf
Click to expand...
Click to collapse
ragin said:
RFS v1.2.2 Ftools Utility Guide, Samsung Electronics Co., Ltd...
http:// www .samsung. com/Products/Semiconductor/FlashSW/XSR_Porting_Guide.htm (page does not exist any more)
http://www.samsung.com/global/busin...ts/flash/downloads/RFS_v122_Porting_Guide.pdf
Click to expand...
Click to collapse
ragin said:
RFS v1.2.2 Programmer’s Guide, Samsung Electronics, Co., Ltd...
http://www.samsung.com/global/busin.../applicationnote/rfs_v12_application_note.pdf
Click to expand...
Click to collapse
I checked all of these links, these are duplicates.
Please check your findings before posting.
You could do that very quickly by using a hash-tool (like md5).
ttabbal said:
Samsung's kernel source has all the files mentioned in the XSR porting guide.
<kernel source dir>/drivers/tfsr
Interesting to note, we have source for the low-level OneNAND drivers in there... BML, OAM, PAM source as well, all this is for interfacing to the closed kernel module, but it might be possible to adapt the LLD OneNAND driver to interface to the kernel like the MTD driver does, allowing us to use yaffs2 or nilfs and skip Samsungs propriatary wear leveling type code, thus eliminating the FSR module. I have not read the source enough to be able to say for sure how well something like that would work. It would be nice if I could, for example, start the phone up with just ADB running so I could fool with the kernel and use a shell without the rest of the OS loading.
There's also a driver for OneNAND in drivers/mtd/onenand .... interesting.
I wonder if I can tell it to boot from the SD card and ignore the OneNAND devices completely. Then I could fuss with them seperately.
Click to expand...
Click to collapse
Thank you, i'll add that. I'm searching for a git, i can link to.
neldar said:
Thank you, i'll add that. I'm searching for a git, i can link to.
Click to expand...
Click to collapse
http://github.com/travistabbal/linux-galaxy/tree/ttabbal-v1.0
Just one, any samsung kernel source for galaxy s will probably have the same stuff.
Does anyone have a datasheet for the onenand/movimcp in our phones?
tag it RFS, pls
too bad, the OP did not tag this thread "RFS"
Is there a saved copy of the documents mentioned that survived Samsung's restructuring of their website? (I hope I'm beating a horse that isn't completely dead yet.) Thanks
[4 April 2014]I haven't had time to play with my device or update fully the info in this post
Jhong2 has an updated post on how to get ubuntu working on the Asus T100
http://forum.xda-developers.com/showpost.php?p=51291244&postcount=181
http://www.jfwhome.com/2014/03/07/perfect-ubuntu-or-other-linux-on-the-asus-transformer-book-t100/
(do search for the specific topic headers to jump to them)
Post 1: Global Info
UEFI:
Bootloader auto-detection path:
Secure Boot
Partition Table for Live USB sticks:
How to boot from USB stick
Info for various operating systems:
Hardware info:/cpu/cpuinfo:
Post 2: <backup/ archived infomation>
Post 3: Files
grub2 2.00-13ubuntu3 (13.04 raring sources) compiled for grub-efi-ia32 (x86) - bootia32
---------------------------------------------------------------------------------------
Global information
for BIOS 214 (2013.09.25), version loaded on retail T100 units
UEFI:
Bootloader auto-detection path:
(bootloader is only 32-bit compatible)
/efi/BOOT/bootia32.efi
WILL NOT pick up the x64 location /efi/BOOT/bootx64.efi
Secure Boot
You should disable Secure Boot in UEFI/Setup-Utility-Menu-> Security tab-> Secure Boot Menu -> Disable
Partition Table for Live USB sticks:
GPT or MBR works
Use Rufus (works for Windows/Unix ISOs) or Windows 7 USB Download Tool (works for Windows 7 / Windows 8)
How to boot from USB stick
NOTE:
If you don't see the USB drive on the boot list or the UEFI/Setup-utility, this means you have a badly prepped USB live drive, or the boot-list/UEFI/Setup-utility was loaded before the USB drive was read.
If you are on the boot list, boot into UEFI/Setup-utility. Then, go to the last tab, save changes and restart while holding F2 (to force the next reboot to go back into UEFI/Setup-utility). If you still don't see the USB drive after doing this multiple times, then you have a badly prepped USB drive.
I find using Rufus (GPT for UEFI + FAT + 64 kb+ bootable disk using ISO Image) to consistently get a working bootable USB drive
Option 1a) Boot to UEFI USB drive from Windows (works only if your USB is correctly prepped)
Boot into Windows
Swipe from right, click on settings.
Click on Power. Press and hold the shift key, and then click on Restart
A Blue menu should show up. Click on Use a device->click on the device name (might not show up if USB isn't prepped properly)
Device should reboot into the USB
Option 1b) Boot to UEFI/Setup-Utility-menu from Windows (easiest, and almost no way to screw it up)
Boot into Windows
Swipe from right, click on settings.
Click on Power. Press and hold the shift key, and then click on Restart
A Blue menu should show up. Click on Troubleshoot-> Advanced Options-> UEFI Firmware Settings
Inside UEFI/Setup-Utility-menu, go to the last tab, and select the USB Drive
NOTE:
For options 2a and 2b, if you see the ASUS logo and circle loading icon, you either:
Pressed button (ESCAPE/F2) too late. Solution: Reboot and try again
Have Fast startup enabled, and did the steps with the device in shutdown mode. Windows will cache the kernel/other stuff, and you might not be able to get to UEFI. Solution: Reboot from Windows and try again(reboot does not trigger caching). Or disable Fast Startup
Option 2a) Boot to UEFI/Setup-Utility-menu
Inside Windows, restart system. Press and hold the F2 key
You should get into the Aptio Setup Utility screen
Inside UEFI/Setup-Utility-menu, go to the last tab, and select the USB Drive
Option 2b) Boot Menu
Inside Windows, restart system. When screen goes blank, press and hold the ESCAPE key (if you press it too early, Windows might interpret you as cancelling the restart process)
You should get a list of bootable devices
If you see the ASUS logo, you've pressed the ESCAPE key too late. Restart and retry
Info for various operating systems:
You should backup the recovery partition to a separate USB key. Alternatively, you can do it with this ASUS utility Backtracker that HatesForums pointed me to
Windows:
Windows 8.1
x86: (Status: Works but missing drivers)
Used Windows 7 USB Download Tool or Rufus to create bootable USB. Using en_windows_8_1_x86_dvd_2707392 from MSDN (x86 8.1 Regular & Pro ISO), able to install W8.1 x86 and boot to it (missing a few drivers, eg touch screen doesn't work, no sound). Windows is automatically activated without need for key. First boot had 25.7GB free out of 33.6GB.
x64: (Status: Not yet working)
Used Windows 7 USB Download Tool or Rufus to create bootable USB. ISO does not contain bootia32.efi. Copied that file from the x86 ISO to USB, able to boot, but the installer complains that the processor isn't 64-bit compatible
Windows 7
x86: (Status: unknown)
ISO does not contain efi
x64: (Status: unknown
ISO only contains x64 efi
Unix:
Ubuntu:
You need an EFI-compatible distro. For ubuntu, x64 EFI is enabled since 12.04-2. However, we'll need to include x86 EFI because our bootloader only reads x86 EFIs
13.04 x64 desktop- (Status: boots to GUI using fbdev)
Used Rufus(GPT for UEFI + FAT + 64 kb+ raring x64 as bootable disk using ISO Image) to create bootable USB. Copied over the bootia32 to /efi/boot/
there is a bug in VESA where it queries for a BIOS-only command and crashes. Forcing xserver to use fbdev fixes this problem
13.10 x64 desktop- (Status: boots to GUI using fbdev
Same problems as 13.04 x64 plus one addition efifb problem
see post for more details - touchscreen works, but no wifi
Android:
android-ia - (Status: No x86 UEFI bootloader)
Generic UEFI Installer android-4.2.2_r1-ia3 does not come with x86 UEFI bootloader. it does not use grub, so can't just use ubuntu's x86 grub2 efi. Need to compile it from source
android-x86 - (Status: Bootable but slow)
Uses grub, can piggy-back on the ubuntu x64 13.10 bootia.efi grub. Some workarounds needed, see this post
external/efitools/Android.mk
# TODO: support ia32 prebuilt
ifeq ($(TARGET_KERNEL_ARCH),x86_64)
arch_name := x86_64
Click to expand...
Click to collapse
/cpu/cpuinfo:
taken from a x64 13.04 live USB
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Atom(TM) CPU Z3740 @ 1.33GHz
stepping : 3
microcode : 0x312
cpu MHz : 1333.387
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bogomips : 2666.77
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Hardware info:
The microUSB slot is USB-HOST-capable (i.e. with a USB OTG cable or Y cable, you can connect a USB flash drive to the microUSB slot
Amazon.de and Asus.de posted a T100 version with 500GB drive on the keyboard base. No pictures yet
Internal eMMC, 108MB/s 44MB/s read/write on sequential. CrystalDiskMark here
External microSD(HC/XC) reader is NOT UHS-1 compatible. Someone over at liliputing comments posted his atto benchmark
64GB Samsung microSDXC card came in the mail today, I did some ATTO disk tests using the T100's built-in microSD reader and a USB 3.0 reader from Transcend.
Unfortunately, it looks like the built-in reader is connected via USB 2.0. It maxed out at 23.8 MB/s read and 17.2 MB/s write, while the USB 3.0 reader maxed out at 71.3 MB/s read and 21.3 MB/s write. The card is rated at 70 MB/s read and 20 MB/s write.
<backup/ archived infomation>
Files:
grub2 2.00-13ubuntu3 (13.04 raring sources) compiled for grub-efi-ia32 (x86) - bootia32
LINK | MIRROR | Instructions on compiling from source
<reserved 3>
paperWastage said:
ISO does not contain bootia32.efi. Copied that file from the x86 ISO, able to boot, but the installer complains that the processor isn't 64-bit compatible
Android:
Click to expand...
Click to collapse
odd: http://ark.intel.com/products/76759/
shouldnt be erroring about 64 bit, unless the 8.1 installer is checking the CPU ID, isn't recognising it (no idea why) and then presuming a lack of 64 bit support.
SixSixSevenSeven said:
odd: http://ark.intel.com/products/76759/
shouldnt be erroring about 64 bit, unless the 8.1 installer is checking the CPU ID, isn't recognising it (no idea why) and then presuming a lack of 64 bit support.
Click to expand...
Click to collapse
Perhaps the 32bit bootloader sends that the device is only booting in 32bit.
Seeing that I can boot to Ubuntu x64, the chip should be 64bit like how the Intel ark site says. I'll check the cpuinfo in Ubuntu to see what extensions it supports
Will also try to download WinPE and get the efi bootloader from there instead. Windows 7 x64 has efi x64 bootloader, but x86 doesn't have any efi bootloader
Compiling grub2-efi-ia32 (x86)
NOTE:
The instructions below are for raring 12.04.
The same instructions should work for other versions/sources/distros of grub2 as well.
The resulting binary should work with any *nix distros that use grub2
The resulting bootia32.efi should be placed on your USB drive at /EFI/BOOT/bootia32.efi
The grub-mkimage instruction basically packages the grub-efi AND the *.mod you specified into that bootia32.efi. You may need to tweak the list of *.mod that you include. You don't need to copy the *.mod onto the USB drive
-p /boot/grub tells grub-efi to look for the grub.cfg at /boot/grub/grub.conf (location that ubuntu uses). Other distros may use a different location.
Either recompile grub2-efi-ia32 with the right "-p" flag
Or copy your distro's grub.conf to /boot/grub/grub.cfg
Download grub2 sources for raring
https://launchpad.net/ubuntu/+source/grub2/2.00-13ubuntu3
apt-get install gcc bison flex
./configure --with-platform=efi --target=i386
make
#make GRUB EFI binary and mods
cd grub-core
../grub-mkimage -d . -o bootia32.efi -O i386-efi -p /boot/grub ntfs hfs appleldr boot cat efi_gop efi_uga elf fat hfsplus iso9660 linux keylayouts memdisk minicmd part_apple ext2 extcmd xfs xnu part_bsd part_gpt search search_fs_file chain btrfs loadbios loadenv lvm minix minix2 reiserfs memrw mmap msdospart scsi loopback
cp bootia32.efi to <USB DRIVE>/EFI/BOOT/
# might be missing some modules... but if i tried to compile all *.mod, I get an invalid stack frame during grub boot
Click to expand...
Click to collapse
Files:
grub2 2.00-13ubuntu3 (13.04 raring sources) compiled for grub-efi-ia32 (x86) - bootia32
LINK | MIRROR | Instructions on compiling from source
tried using that bootia32.efi to load Ubuntu 13.10 x64 ... (13.10 & 13.04 seem to use the same grub2-2.00 sources)
the grub menu shows up, but after selecting "Try Ubuntu", it flashes, menu continues showing up, nothing happens
then my Windows 8.1 OS got corrupted or something.... either boots to Windows message "Windows unable to start up properly", or it boots to login screen, then the screen goes haywire and popup boxes saying "illegal exception" or something
going to reinstall W8.1 x86 cleanly from a MSDN ISO/USB flash drive
got the logs from the semi-successful 13.04 x64 boot... will look through them and post them soon
ubuntu x64 13.04, debuging x-server issues
[ 36.591] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 36.597] (II) Module fbdev: vendor="X.Org Foundation"
[ 36.597] compiled for 1.12.99.902, module version = 0.4.3
[ 36.597] Module class: X.Org Video Driver
[ 36.597] ABI class: X.Org Video Driver, version 13.0
[ 36.597] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
Haswell Server (GT2+), Haswell SDV Desktop (GT1),
Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
Haswell ULT Server (GT1), Haswell ULT Server (GT2),
Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
ValleyView PO board
...
[ 36.762] (II) VESA(0): initializing int10
[ 36.763] (EE) VESA(0): V_BIOS address 0x0 out of rangefrom
http://www.redhat.com/archives/rhl-devel-list/2009-December/msg00372.html
looks like 13.04 is able to recognize and load the necessary drivers, but crashes because our UEFI-only computer doesn't have a BIOS portion... or maybe 13.04 is using older stuff
EDIT: or does that error even matter? trying to force x to configure itself
EDIT2: it matters because VESA is configured to be the default/fallback driver. With the V_BIOS issue, it won't work. Tried to force it to use fbdev driver, but no luck (it loads, but nothing shows up)
I deleted the vesa_drv.so from /usr/lib/xorg/modules/drivers/ , forced it to start using fbdev... works, very slowly of course
will try the intel driver later
(it's definitely the vesa BIOS bug that's stopping it from working on 13.04... will debug 13.10 later)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
<instructions below should be complete
got ubuntu 13.10 to boot to command prompt (with bootia32.efi and grub.cfg fixes below)
Rufus (GPT for UEFI + FAT + 64 kb+ 13.10 desktop x64 as bootable disk using ISO Image)
Note:
Good behavior:
After you select "Try Ubuntu" in grub, screen goes to blank, (?might appear as well) usb light disappears... wait < 30s, the screen should then show the logs and then cmd line)Bad Behavior:
After you select "Try Ubuntu" in grub, screen goes to blank, then the grub menu reappears (but nothing happens when you press arrow keys). (?might appear as well) usb light stays lighted. if you wait >5 minutes, nothing happens. just force reboot machine (hold power button), and reboot into windows, then UEFI and try again
/boot/grub/grub.cfg - replace with the text below
Code:
if loadfont /boot/grub/font.pf2 ; then
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry "Try Ubuntu without installing" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper text noacpi nomodeset --
initrd /casper/initrd.lz
}
menuentry "Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --
initrd /casper/initrd.lz
}
menuentry "OEM install (for manufacturers)" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true --
initrd /casper/initrd.lz
}
menuentry "Check disc for defects" {
set gfxpayload=keep
linux /casper/vmlinuz.efi boot=casper integrity-check quiet splash --
initrd /casper/initrd.lz
}
(changes in grub is to disable efifb which causes screen flickering/corruption - video=vesa: off doesn't work, probably because vesa IS the fallback driver)
then boot. After you get to command line, remove the vesa_drv.so module from /usr/lib/xorg/modules/drivers/, type startx
touchscreen works on x64 13.10. still haven't had time to make x86 ISO work with bootia32.efi GRUB
For Android-x86 without EFI support, I wonder if this method courtesy of Tyler Swindell on Youtube would work. This is what he used to get Android-x86 booting on the Surface.
Alright guys, this is the Surface Pro running Android-x86. It was something we all saw coming. Past 2
nights, I have been trying hard to get Android-x86 to run on my Surface Pro since I saw how amazing it
ran on my desktop PC. If it would just boot, I could see just how great Android is on the Surface Pro. So
I got it to boot, and it was just as great as I expected it to be.
So why didn't it boot? I had Secure Boot off. Ubuntu boots, Windows 7 boots. Well what do all these
operating systems have in common? Their installers all include both BIOS and EFI boot loaders. What is
interesting about the Surface Pro is the UEFI chip was designed without legacy BIOS support. There is
no way to boot a BIOS-based boot loader.
I thought about it and how Ubuntu boots. I checked the files and I saw a EFI-based Grub boot loader.
All I had to do was drop in Android's files into an Android directory and add the boot entries. This
worked and Android booted thanks to the EFI-based Grub boot loader.
Everything works except no connectivity, no Wi-Fi or Bluetooth. Also the buttons could have better
functions such as the Windows button or the power button which just brings up a power menu. Overall
it's a great start, it's booting, and the drivers are there for mostly everything. It's fantastic.
This tutorial can be drastically simplified and improved. Keep in mind it was just to get it to work.
1. Download Android-x86 ISO and Ubuntu 12.10 x64 ISO.
2. Format a USB flash drive.
3. Using LiLil USB Creator, copy Ubuntu ISO to flash drive.
4. Create Android directory in flash drive. Extract Android ISO, copy initrd.img, kernel, ramdisk.img,
system.sfs to the Android directory.
5. Modify boot/grub/grub.cfg to add these entries:
submenu "Android" {
menuentry "Android" --class android --class linux --class os {
linux /android/kernel root=/dev/ram0 androidboot.hardware=android_x86 quiet video=1920x1080
dpi=145 i915downclock=1 i915.powersave=1 usbcore.autosuspend=2 SRC=/android/
initrd /android/initrd.img
}
menuentry "Android text output" --class android --class linux --class os {
linux /android/kernel root=/dev/ram0 androidboot.hardware=android_x86 video=1920x1080 dpi=145
i915downclock=1 i915.powersave=1 usbcore.autosuspend=2 SRC=/android/
initrd /android/initrd.img
}
menuentry "Android debug mode" --class android --class linux --class os {
linux /android/kernel root=/dev/ram0 androidboot.hardware=android_x86 video=1920x1080 dpi=145
i915downclock=1 i915.powersave=1 usbcore.autosuspend=2 SRC=/android/ DEBUG=1
initrd /android/initrd.img
}
}
6. Turn off Secure Boot and boot Android. Enjoy.
Click to expand...
Click to collapse
Sent from my DROID BIONIC using Tapatalk
spunker88 said:
For Android-x86 without EFI support, I wonder if this method courtesy of Tyler Swindell on Youtube would work. This is what he used to get Android-x86 booting on the Surface.
Sent from my DROID BIONIC using Tapatalk
Click to expand...
Click to collapse
that might work, forcing android-x86 to boot via grub.. thanks
been using android-ia, which doesn't use grub... uses another efitool, need to play with both android-x86 and android-ia later tonight
paperWastage said:
that might work, forcing android-x86 to boot via grub.. thanks
been using android-ia, which doesn't use grub... uses another efitool, need to play with both android-x86 and android-ia later tonight
Click to expand...
Click to collapse
Picking up on our conversation from SlickDeals.. I actually ended up buying one of these things and I was able to get an external hard drive recognized just by plugged into my usb OTG cable -- in windows. I even tried a USB mouse which worked perfectly.
Deltido said:
Picking up on our conversation from SlickDeals.. I actually ended up buying one of these things and I was able to get an external hard drive recognized just by plugged into my usb OTG cable -- in windows. I even tried a USB mouse which worked perfectly.
Click to expand...
Click to collapse
yeah, my usb otg cable works now in windows (detects flash drive). no idea why it didn;t work before (maybe I unpluged it too early while it was detecting/installing the usb driver?)
got android to boot up, but uglily
need 2 flash drives, and a USB-OTG cable(to be able to connect using the microUSB port)... a USB-hub should work too
(basically, you're piggying back off the ubuntu grub2 bootloader, to load the android kernel and other stuff)
used my (existing & currently working) ubuntu 13.10 x64 bootable USB (made via Rufus, GPT partition with bootia32.efi fix)
copied the contents of android-x86-4.3-20130725.iso into the USB:/android/
modified contents of grub.cfg as per the post by spunker88 with some changes to the resolution
second flash drive had dd if=android-x86-4.3-20130725.iso of=/dev/sdb1
without this second flash drive, the android boot sequence stops at "Detecting Android-x86" and "VFS: could not find a valid V7 on sda1". probably something to do with android/kernel not liking the first drive having FAT instead of ext2/3/4
grub.cfg - add to the end, and select this during grub
Code:
submenu "Android" {
menuentry "Android" --class android --class linux --class os {
linux /android/kernel root=/dev/ram0 androidboot.hardware=x86 video=1366x768 DEBUG=1 SRC=/android/
initrd /android/initrd.img
}
}
boot into USB, then grub, then select android.
android crashes to command line. forcing it to start (type exit twice), leads to the default android start screen, and eventually this
it is SUPER LAGGY. not usable
paperWastage said:
got android to boot up, but uglily
need 2 flash drives, and a USB-OTG cable(to be able to connect using the microUSB port)... a USB-hub should work too
(basically, you're piggying back off the ubuntu grub2 bootloader, to load the android kernel and other stuff)
used my (existing & currently working) ubuntu 13.10 x64 bootable USB (made via Rufus, GPT partition with bootia32.efi fix)
copied the contents of android-x86-4.3-20130725.iso into the USB:/android/
modified contents of grub.cfg as per the post by spunker88 with some changes to the resolution
second flash drive had dd if=android-x86-4.3-20130725.iso of=/dev/sdb1
without this second flash drive, the android boot sequence stops at "Detecting Android-x86" and "VFS: could not find a valid V7 on sda1". probably something to do with android/kernel not liking the first drive having FAT instead of ext2/3/4
grub.cfg - add to the end, and select this during grub
Code:
submenu "Android" {
menuentry "Android" --class android --class linux --class os {
linux /android/kernel root=/dev/ram0 androidboot.hardware=x86 video=1366x768 DEBUG=1 SRC=/android/
initrd /android/initrd.img
}
}
boot into USB, then grub, then select android.
android crashes to command line. forcing it to start (type exit twice), leads to the default android start screen, and eventually this
it is SUPER LAGGY. not usable
Click to expand...
Click to collapse
Progress!!
Although its unusable, it's nice to see android on this device. So what do you think needs to be done to get android usable on this?
costcutter said:
Progress!!
Although its unusable, it's nice to see android on this device. So what do you think needs to be done to get android usable on this?
Click to expand...
Click to collapse
for both ubuntu/android, first steps (since it's booting) is to get the graphics driver working. right now, ubuntu is using fbdev and android is (i think) using efifb... both are running at 800x600 and laggy....
either I fix the VESA bug, or find the correct intel driver for the new Bay Trail IGP and use it
then, install ubuntu/android properly on the device, and then debug the rest (instead of through a live USB where changes would not persist from every reboot)
I'm trying with Fedora 20 alpha, but not much luck so far.
Got the grub2-efi to work with your tutorial (and some digging), but once I start installing Fedora, it seems to freeze.
Gonna try ubuntu over the weekend.
probably the vesa bug as well (if you are trying to install via gui)
attempting to fully install ubuntu on system and boot from it.... the bootia32.efi / bootx64.efi / grubx64.efi is making a mess here...
managed to get Windows Bootloader AND ubuntu grub listed as boot options... grub has problems though, dumps me into grub shell
EDIT: Think it;s easiest for me to try installing EFI Shell, and tinker from there
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell
EDIT2: For Windows 8 64-bit, the error is "This 64-bit application couldn't load because your PC doesn't have a 64-bit processor"
Looks like we need to enable Virtualization in the UEFI/BIOS... but there isn't such an option (the cpu Z3740 does support VT-x)