How to install OSX Mavericks (10.9.4) as a Windows 8.1 VirtualBox VM
Please note, this thread is only meant to share some personal notes
on what I did and how to get this working. It is not meant as a
support thread. In fact, I will not respond to any support questions.
The links found here will provide you with more information than you
could ever beg for.
Almost exactly one year ago, I posted some instructions on how to
install OSX Mountain Lion into a VirtualBox (VB) VM, running on an
old Windows Vista AMD laptop. This time I'll show you (briefly) how
to install OSX Mavericks to an Intel Laptop running Windows 8.1.
The installation procedure is divided into a few steps.
1. Pre-installation preparation
2. Install the Niresh OS X Mavericks (10.9.0) distribution.
3. Install the Official Apple OS X Mavericks (10.9.4) Update Combo
4. Post installation instructions
Some important Hackingtosh references:
Here is a mega-thread on OSX how-to's and help related items.
http://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/
Especially the section on DSDT and SSDT:
http://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/#entry2027250
http://www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/
http://lifehacker.com/the-always-up-to-date-guide-to-building-a-hackintosh-o-5841604
1. Pre-installation preparation
Basic Hardware Info
Before you attempt to install your OSX into a VirtualBox VM (guest),
you need to find out some details about your own machine (host). Why?
Because every new OS X is depending on the Hardware to be very
"maxed out" and specific. You need to tune your VB VM to behave similar
to a real Apple machine in order to make the OS X think your machine
hardware is a real Mac. In addition, some PCI devices are passed on and
through to the VB VM engine.
For example, for a half decent running Mavericks installation,
you need to have at least 2-4 processor cores, 4 GB RAM and 30 GB HD
in your VM. Then your host need some memory as well... Then to get
correct audio, video, network, USB etc you need to know exactly what
HW your host have AND how that is presented by VB to a VM guest.
So how do you do that?
On your PC/Laptop (host):
Code:
[SIZE=2]Windows: Use [URL="http://www.hwinfo.com/"]HWiNFO64[/URL] + [URL="http://rweverything.com/download/"]RW-Everything[/URL] + (Windows) [I]Device Manager [/I]
Linux: Download and run a Live Linux distro and copy the
output of [I]dmesg[/I] and [I]lspci, lsusb[/I], respectively.
[/SIZE]
For this laptop we have:
<TBA>
From host HWiNFO64, we found:
Code:
[SIZE=2]Audio Adapter: Intel Lynx Point PCH - High Definition Audio Controller [C2]
Audio Controller Hardware ID: PCI\VEN_8086&DEV_8C20&SUBSYS_11CD1043&REV_05
Audio Codec Hardware ID: HDAUDIO\FUNC_01&VEN_[COLOR=Red][B]10EC[/B][/COLOR]&DEV_[COLOR=Red][B]0668[/B][/COLOR]&SUBSYS_00000000
DeviceInstanceId: HDAUDIO\FUNC_01&VEN_10EC&DEV_0668&SUBSYS_104311CD&REV_1000\4&6BFDCFC&0&0001
[/SIZE]
We then look up these PCI IDs at one of the websites:
pci-ids or pci-database.
There we find that the host physical Audio Codec is a: Realtek ALC668 [10EC:0668]
So if we had a real Hackingtosh, we would have to find or make and
install the AppleHDA.Kext that has been built and tweaked to
correspond to this driver. Here are some relevant links:
http://www.insanelymac.com/forum/files/file/203-applehda-alc662-1092/
http://www.insanelymac.com/forum/files/file/148-109-gm-applehda-for-alc662/
http://www.insanelymac.com/forum/files/file/128-109-dp7-applehda-for-alc662/
http://www.insanelymac.com/forum/files/file/6-applehda-for-alc662/
On the VirtualBox VM (guest):
Boot up or install any minimal OS like Windows, Linux and use the
same method as above, but now running in the VM. As you will see,
the detected hardware will look different. That is basically
how OSX will see it as well.
So to help you along we'll jump ahead and I just show you
what an installed guest OS will see in terms of Audio HW.
I've ignored all other HW, since audio is what causes most
trouble to OSX guests.
On OSX 10.9.4 (Intel HD Audio):
Code:
[SIZE=2]# sudo lspci -m -v
Device: 00.05.0
Device: 82801FB (ICH6) High Definition Audio Controller
SVendor: [B]SigmaTel[/B]
SDevice: Device 7680
# sudo lspci -m -n -vvv
Class: 0403
Vendor: 8086
Device: 2668
SVendor: [B]8384[/B]
SDevice: [B]7680[/B]
[/SIZE]
On Linux Mint (ICH AC97):
Code:
# sudo lspci -b -nn -v
00:05.0 Multimedia audio controller [0401]: Intel Corporation 82801AA AC'97 Audio Controller [8086:2415] (rev 01)
Subsystem: Intel Corporation Device [8086:0000]
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at d100
I/O ports at d200
Kernel driver in use: snd_intel8x0
On Linux Mint (Intel HD Audio):
Code:
[SIZE=2]00:05.0 Audio device [0403]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller [8086:2668] (rev 01)
Subsystem: SigmaTel Device [[COLOR=Red][B]8384:7680[/B][/COLOR]]
Flags: bus master, fast devsel, latency 64, IRQ 11
Memory at f0804000 (32-bit, non-prefetchable)
Capabilities: [50] Power Management version 2
Kernel driver in use: snd_hda_intel[/SIZE]
On Windows 7 (Intel HD Audio):
Code:
[SIZE=2]Audio Controller Hardware ID: PCI\VEN_8086&DEV_2668&SUBSYS_[B]76808384[/B]&REV_01
Audio Codec Hardware ID: HDAUDIO\FUNC_04&VEN_0000&DEV_0000&SUBSYS_00000000[/SIZE]
Clearly the guest driver presented is a SigmaTel with PCI ID: 8384:7680.
Further research reveals it is based on a: SigmaTel STAC9221 [8384:7680]
Thus, for any audio success on running OSX on a VirtualBox VM, we need
to find a Kernel Extension (Kext) that is compatible with this driver.
The best way is to find a tweaked AppleHD.Kext to match this driver.
HOWEVER! Lo-and-behold! The Realtek (!) linux sources seem to suggest
that this driver is used in several Macs:
From: ..\alsa\alsa-kernel\pci\hda\patch_sigmatel.c:
Code:
[SIZE=2]
/* Apple Intel Mac (Mac Mini, MacBook, MacBook Pro...) */
SND_PCI_QUIRK(0x8384, 0x7680, "Mac", STAC_INTEL_MAC_AUTO),
...
/* codec SSIDs for Intel Mac sharing the same PCI SSID 8384:7680 */
static const struct snd_pci_quirk stac922x_intel_mac_fixup_tbl[] = {
SND_PCI_QUIRK(0x106b, 0x0800, "Mac", STAC_INTEL_MAC_V1),
SND_PCI_QUIRK(0x106b, 0x0600, "Mac", STAC_INTEL_MAC_V2),
SND_PCI_QUIRK(0x106b, 0x0700, "Mac", STAC_INTEL_MAC_V2),
SND_PCI_QUIRK(0x106b, 0x0e00, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x0f00, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x1600, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x1700, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x0200, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x1e00, "Mac", STAC_INTEL_MAC_V3),
SND_PCI_QUIRK(0x106b, 0x1a00, "Mac", STAC_INTEL_MAC_V4),
SND_PCI_QUIRK(0x106b, 0x0a00, "Mac", STAC_INTEL_MAC_V5),
SND_PCI_QUIRK(0x106b, 0x2200, "Mac", STAC_INTEL_MAC_V5),
{}
};
...
{ .id = 0x83847680, .name = "STAC9221 A1", .patch = patch_stac922x },[/SIZE]
So when you first boot and install your Niresh Mavericks, you should
probably leave out any Audio related hacks, and certainly avoid
installing the VooDooHDA related Kext. It's possible (and I didn't
bother to check) that audio would then work out-of-the-box as well.
Finding a suitable "distro"
Next, you need to find and download a suitable ISO version of the
OSX Mavericks Installation disk. Apple uses the DMG format to
distribute all their installation "Disks". So to avoid having to
mess with the conversion of a 3.5+ GB DMG image to ISO, we just
try to find a torrent of one already made. But because of the
inherent complications of booting and setting up your own
"Hackingtosh" from a vanilla (original) Apple disk, we prefer to
use one that come as a distribution ("distro") which is more
flexible and much more likely to install from first try. And
usually have some sort of support forum connected to it.
One such distro is that from Niresh. We will use that one.
It is important to mention that, today Apple OS X Maverick is free
of charge for download and use, but you need an OSX based computer,
in order to get it from the Apple Store. And if you're willing to
jump through the Apple hoops, you can also get the latest
OSX Yosemite (10.10.0) and try that. But you need to signup
to the Apple Store with a credit card! So I just used my untraceable
NSA credit card to signup. It has a picture of Obama and the Logo of
Google on it. In the states you can usually find those in the bottom
of some randomly selected Kellogg's Corn-Flakes Packages.
2. Installing the Niresh OS X Mavericks distro
Fortunately all this hard work has already been described in great
detail on the MacBreaker website in:
"How to install OS X Mavericks in Virtualbox with Niresh"
However, before you go there and rush through the instructions, please
listen to this first. If you're a smart-ass who think you can outsmart
the apple bootloaders and the many precise VirtualBox settings needed
to boot OSX, you are very likely to fail and will have serious booting
trouble and subsequent OSX driver issues. And as with all Apple products,
if you're not an expert yourself, nobody will/can help you, especially
since Googling any OSX related installation issues will give you millions
of hits.
So take good time to read every step in those instructions and carefully
examine all the screenshots to know exactly how you have to setup and
tune your VirtualBox VM to your device. I will provide some additional
pictures on a few things I found working for my setup.
You need to signup (or find a torrent) to download the file:
"Niresh Mac OS X Mavericks 10.9 with AMD & Intel USB"
This OSX distribution works on both Intel and AMD based machines, and
can be run on native Hackingtoshes, VirtualBox and VMware machines.Very Important Note:
OSX Mavericks is now free from the Apple Store, so if you are looking for the latest update, or original distribution, don't try to use this. This is a distribution that is made to be run on Hackingtoshes or VMs. It is not up-to-date nor maintained in any way. That's why it is in ISO format and not in native Apple DMG. If you already know you want to use VMware, then perhaps you're better off trying to use the VMware Mavericks Image.
Google for: "OS_X_Mavericks_10.9_Retail_VMware_Image"
Converting a DMG to ISO:
If you want to convert a DMG to ISO from within OSX run the following,
in an OSX Terminal:
Code:
[SIZE=2]cd Desktop
sudo hdiutil convert ./InstallESD.dmg -format UDTO -o InstallESD
mv InstallESD.cdr InstallESD.iso[/SIZE]
or:
Code:
[SIZE=2]sudo hdiutil makehybrid -iso -joliet -hfs -o OSXMavericks.iso OSXMavericks.dmg[/SIZE]
I found the following "script" on the web. It is used to convert a Yosemite
DMG image to ISO. But it doesn't look like a real script, so probably it should
be entered one item at the time. (Also, I can't find the original author. So if you are, just let me know an I'll give you credit for it.)
Code:
[SIZE=2]# ==============================================================
# 10.10 How to make an ISO from the Install.app
# ==============================================================
# Mount the installer image. It assumes that the installation app is called "Install OS X Yosemite.app"
# located in your "Applications" folder. If not, change the first command accordingly.
hdiutil attach /Applications/Install\ OS\ X\ Yosemite.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app
# Convert the boot image to a sparse bundle
hdiutil convert /Volumes/install_app/BaseSystem.dmg -format UDSP -o /tmp/Yosemite
# Increase the sparse bundle capacity to 8GB to accommodate the packages
hdiutil resize -size 8g /tmp/Yosemite.sparseimage
# Mount the sparse bundle for package addition
hdiutil attach /tmp/Yosemite.sparseimage -noverify -nobrowse -mountpoint /Volumes/install_build
# Remove Package link and replace with actual files
rm /Volumes/install_build/System/Installation/Packages
cp -rp /Volumes/install_app/Packages /Volumes/install_build/System/Installation/
cp -rp /Volumes/install_app/BaseSystem.* /Volumes/install_build/
# Unmount the installer image
hdiutil detach /Volumes/install_app
# Unmount the sparse bundle
hdiutil detach /Volumes/install_build
# Resize the partition in the sparse bundle to remove any free space
hdiutil resize -size `hdiutil resize -limits /tmp/Yosemite.sparseimage | tail -n 1 | awk '{ print $1 }'`b /tmp/Yosemite.sparseimage
# Convert the sparse bundle to ISO/CD master
hdiutil convert /tmp/Yosemite.sparseimage -format UDTO -o /tmp/Yosemite
# Remove the sparse bundle
rm /tmp/Yosemite.sparseimage
# Rename the ISO and move it to the desktop
mv /tmp/Yosemite.cdr ~/Desktop/Yosemite.iso
[/SIZE]
VirtualBox Installation Instructions:
Follow the MacBreaker installation instructions EXACTLY. When
installing on a Haswell based PC host, you MUST run the VBoxManage
commands to make your VM think it has an older/supported processor.
Before trying this, or if you get an error, make sure:
That your Windows system PATH contains both your Windows home directory and the VirtualBox
program directory:
a) "%HOMEDRIVE%%HOMEPATH%;" and
b) "C:\Program Files\Oracle\Virtualbox"
.
That after creating your OSX VM, that you close VirtualBox and restart it, in order to make all
the new settings take effect and get registered in the *.vbox file, used by VBoxManage.exe.
The location of the *.vobx settings file is the same as where you have the VB images.
(This used to be VirtualBox.xml in VB < 4.0.)
To test, open a CMD or Cygwin shell as administrator and run:
Code:
VBoxManage.exe list hostcpuids
...
If it works without any error, go on and change the CPU ID of the VM where you're installing OSX with:
Code:
[SIZE=2]VBoxManage.exe modifyvm "name_of_your_vm" --cpuidset 00000001 000306a9 00020800 80000201 178bfbff[/SIZE]
(Technically you're entering: [--cpuidset <leaf> <eax> <ebx> <ecx> <edx>].)
If you're having trouble, you can also edit <name_of_your_vm>.vbox file
directly, by adding/removing the following lines:
Code:
[SIZE=2] <CpuIdTree>
<CpuIdLeaf id="1" eax="1787" ebx="2048" ecx="2147484169" edx="126614527"/>
</CpuIdTree>
[/SIZE]
(As you can see these are the same values in Dec as those in Hex above.)
When successful, restart VirtualBox to make sure your changes has
taken effect. After starting the properly setup OSX VM on a Haswell
machine, the only bootflag you may want is: "-v" for verbose bootup.
3. Install the Official Apple OS X Mavericks (10.9.4) Update Combo
Go into the OSX control panel and disable automatic updates. Then go to Apple Store and
download the latest Mavericks Combo Update. Updating should not change any of your
working settings, but to be safe, make a snapshot before doing this. Once downloaded,
just open and run the update. Installation will take a while.
4. Post installation instructions
So now that you got your basic OSX system running, the first thing to
do is to make a VirtualBox Snapshot, so that you can revert to this
point in case any of the subsequent procedures fails or mess up your
working system.
Once you are up and running with your virtual OS X machine you need to
do a couple of housekeeping tasks to ensure your virtual machine does
not freeze. Firstly go to "System Preferences" and select "Energy Saver"
and set "Computer sleep:" and "Display sleep:" to Never and also uncheck
"Put hard disks to sleep when possible", "Wake for Ethernet network
access" and "Allow power button to put the computer to sleep". In
"Desktop & Screen Saver" set "Screen Saver" to "Start after:" Never.
Then there are 3 things everyone have to have:
Shared folders between the host and guest OS.
Shared clip-board data, so that you can copy/paste between host and guest OS.
Change the default Display size
Since the VirtualBox maffia refuse to release the Guest Additions (GA)
for OSX, we have to work around these issues. Or if you are a brave OSX
developer, you can try to patch and compile the GA from their sources
and if you're successful, don't forget to share and give us a way to
send you some gold donations.
Folder Sharing
Folder sharing is most easily accomplished by setting up a network
share between host and guest OS. There are many ways and variations
on how to do this. But what most instructions miss, is that you would
probably like to keep your host more secure than your guest. This
means that the guest should be configured as the server and the
host as a client. (Which is contrary to most simpler instructions.)
So here are 3 easy ways to accomplish this.
1. Use Windows 8.1 and OSX internal file sharing capabilities.
2. Use Dropbox to share a folder and enable LANsync to make it fast.
3. Use one of the 3rd party tools below.
Of these, I prefer to use something where I don't need to depend on
an internet connection and having to sign up with any new services.
The easiest way I found to accomplish folder sharing using method (1)
was to use Windows 8.1 built in NFS functionality. To use this, you
need to enable NFS sharing of a folder in your OSX VM and then mount
this folder in your W81 host.
Setup OSX NFS (guest):
(Thanks to linoceros post at FreeBSD.org forums.)
(a) Check your network conection with 'ifconfig" and note your IP
on the local network. (I use a bridged-ethernet interface.)
(b) Read the OSX man pages for "export".
"The -alldirs flag allows the host(s) to mount at any point
within the file system, including regular files if the '-R'
option is used on nfsd."
Click to expand...
Click to collapse
(c) Find the UID and GID of the OSX user you are using.
Code:
[SIZE=2]$ id
uid=501(eva) gid=20(staff) groups=20(staff),
...
[/SIZE]
(d) Edit the file: /etc/exports (usually not present.)
In this file, the syntax is basically:
<shared folder> <options> <client IP>
$ sudo vi /etc/exports
Code:
[SIZE=2]/Users/eva/Desktop/winshare -mapall=501:20 -alldirs 127.0.0.1[/SIZE]
(You may need to change this for more security...)
(e) Edit the file: /etc/nfs.conf (usually already present.) And add the following line:
$ sudo vi /etc/nfs.conf
Code:
[SIZE=2]...
nfs.server.mount.require_resv_port = 0[/SIZE]
(f) Then let NFS know you've made a change by running:
$ nfsd update
Setup on Win8.1 (host):
(g) Now go to your Windows host and in "This PC" (or equivalent)
left-click and select "Add a network location". You will be asked to
provide a an "internet or network location". There you simply write
the IP you noted in step (a) and the "shared" folder you selected
in step (d). Written in windows notation as:
\\192.168.1.102\Users\eva\Desktop\winshare\
NOTE: Do not try to "edit" the files in the share. The behavior is a
bit unpredictable, so it's better to copy to another location and
then back again after edit. Not sure at the moment why that is...
Clip-board sharing
To keep things simple we should limit ourselves and be satified
with copy/paste operations. Just like before, here there are many
variations on KMS (Keyboard-Mouse-Screen) sharing solutions from
3rd parties. Even Apple themselves has a lame solution called
"Back To My Mac" that require you to sign up to, and use iCloud
before being able to have all your stuff snatched up by Apples
NSA employees. Here are the links.
[1] "How to set up Back To My Mac..."
[2] "Set up and use Back to My Mac"
[3] "Set up security options for Back to My Mac"
BUT No thanks! Let's find another solution.
So what we need, is a way to only share the clipboard data over
the local network. We don't need mouse sharing as all that already
works great in VB, unfortunately its not so easy to find something
with only clipboard sharing. So we choose the most easy one, which
means the one with best instructions, and that is ShareMouse.
The most popular and free ones are:
Code:
[SIZE=2][URL="http://www.keyboard-and-mouse-sharing.com/index.html"]ShareMouse[/URL] (cross-platform mouse-keyboard-file share)
[URL="http://synergy-project.org/"]Synergy[/URL] (cross-platform mouse-keyboard-file share)
[URL="https://github.com/coralw/share-clipboard"]ShareClipboard[/URL] ([URL="http://nodejs.org/"]Node.js[/URL] based OSX/WIN clipboard sharing)
[/SIZE]
Other solutions to consider.
Code:
Ducto R6 (cross device file/clipboard share) http://www.msec.it/dukto/
IP.SHARE (web based file/clipboard share) http://www.ipshare.net/
ClipboardSync (Google Chrome Clipboard Sync) [instructions] https://github.com/mihaip/clipboard-sync
Installation of ShareClipboard:
ShareClipboard depend on the Node.js API which can be downlaoded and
installed from HERE. It's available for all platforms and need to be
installed on each VM. One done, it is easy to starts the clip-board
sharing. There are two ways to use this:
1. Use as client-to-client sharing.
2. Use a server to act as a redirector, broadcasting the clipboard
text from a ShareClipboard client to the other ones, while the
server clipboard is left untouched.
To use ShareClipboard with Clients only (1):
Code:
[SIZE=2]a) Install the copy-paste module with the Node Package Manager*:
npm install copy-paste
b) Open a terminal and run the script with one of the following:
node share-clipboard.js
node share-clipboard.js <IP_ADDRESS>
c) If you haven't specified the IP address in the previous step,
connect other Share Clipboard (or Share Clip) instances to
this instance .
d) Now you can copy among the Share Clipboard clients.
[/SIZE]
To use your host as the ShareClipboard Server (1):
Code:
a) Open a terminal and run the script with:
node share-clipboard-server.js
b) Connect the ShareClipboard clients to the server IP.
c) Now you can copy among the Share Clipboard clients.
* Reagrdless of the BS written on their FAQ, "npm" IS a Node package manager.
Changing Display size
To change the default video/display size, from 1280x1024 (or 1024x768)
to 1920x1080, you need to edit the OSX bootloader plist.
1. Use Finder to open the file: /Extra/org.chameleon.Boot.plist
in Editor or use Terminal App in shell with:
Code:
sudo vi /Extra/org.chameleon.Boot.plist
2. Then between the <dict> and </dict> tags, in the file, insert the
following lines:
Code:
[SIZE=2] <key>Graphics Mode</key>
<string>1920x1080x32</string>
[/SIZE]
3. Save and shutdown VM, but keep VirtualBox open.
4. Similarly as above, open an administrative CMD/Cygwin shell and issue the command:
Code:
[SIZE=2]vboxmanage setextradata "name_of_your_vm" "CustomVideoMode1" "1920x1080x32"[/SIZE]
5. Restart VirtualBox.
PS. I found 1600x900x32 in non-scaled mode, more useful on this Laptop.
Additional Enhancements and Fixes
To remove window flickering in Safari, remove the zero byte file:
/Library/Preferences/com.apple.windowserver.plist
Good Luck!
< Let there be even more dragons>
I have installed OSX Mavericks 10.9 using VMware Workstation.
my first intention was to install OS X 10.9 on an external HDD and boot it from there instead of "virtual", but couldnt find answers.
I have intel , BTW.
Booting Yosemite (10.10.x) Public Beta 2 in VirtualBox
Just for the hell of it, I decided I wanted to run the latest Yosemite Public Beta 2 in a VirtualBox VM under Windows 8.1. After all sorts of trouble, I finally learned that Yosemite has implemented more compatibility changes that blocks older Apple hardware from using it. So the way to work around is to hack your VM in such a way that it acts like recent Apple HW. Fortunately, VirtualBox is very flexible in this area, but very poorly documented and extremely poorly supported, as Oracle (VirtualBox) forum have decided to avoid any forms of Apple litigation's, by simply banning any questions related to running OSX on any HW not from Apple.
So here I will present the simple steps to get Yosemite to run on a recent (Intel) Haswell-based Windows 8.1 host. There are two ways to do this.
Use another Mac/Hackingtosh to download the latest Public Beta (PB) or Developer Preview (DP) from Apples Developer/Beta site. You need to sign up and so on. Then run script to convert into DMG format.
Download an already made bootable Yosemite Public Beta in DMG format from some torrent site.
Once you have obtained (1) or (2) you're ready to install your Yosemite VM.
Do the following:
For Option 1
<TBA>
For Option 2
First download your Yosemite Public Beta in bootable DMG format from your favorite torrent site. In my case it was called YB2VB.dmg. Then create your new VirtualBox VM according to:
Code:
- Create a VM disk with > 40 GiB
- Under [I]General > Basic:Version[/I], use "Mac OS X (64bit)"
- Under [I]System > Motherboard[/I]
: [I]Base Memory,[/I] select 6 GiB VM RAM
: [I]Chipset[/I], use PCIIX
: [I]Extended Features[/I], select all to use EFI, ACPI, and UTC
- Under [I]System > Processor[/I], select only 1 CPU
- Under [I]System > Acceleration: Hardware Virtualization[/I], select all.
- Under [I]Display > Video:Video Memory[/I], use 128 MB, and do [B]not[/B] select any Extended Features (2D/3D)
- Under [I]Storage > Storage Tree[/I], select the "Empty" (CD icon) and go to:
"CD/DVD Drive" selector and click on the right-most CD icon for a
drop-down menu. On that menu, browse to and select your [B]*.dmg[/B]
image you downloaded above. Also select the "Live CD/DVD" option.
- Save and close VirtualBox.
Next you need to tune VB to impersonate some recent Apple HW.
First re-start VirtualBox. Once started, run an administrative command shell and run these:
Code:
VBoxManage.exe modifyvm "YourVMname" --cpuidset 00000001 000306a9 04100800 7fbae3ff bfebfbff
VBoxManage setextradata "YourVMname" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3"
VBoxManage setextradata "YourVMname" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "YourVMname" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "IHateApple"
VBoxManage setextradata "YourVMname" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "YourVMname" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
Close VB for changes to take proper effect. Restart and start you VM.
Be very patient, and after some error messages your OSX should bootup
to start the setup process.
Formatting the (new) VM disk/parition
Once the boot process start loading, you'll have to select language and then the boot disk to use. But since you don't have a boot disk, but only the mounted CD-ROM (DMG) image, you'll have to go into Disk Utility and format the VM disk partition and give it a name like this.
{
"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"
}
and
Now you can exit DIsk Utility and continue installing by selecting your new disk...
Once installation is finished, the system will reboot and you will be asked a few setup questions. After that the following assistant will aks you signup. Forget it by force closing it.
Then you can run the System Information App to find what you got:
and the Terminal App to see what kernel you're using:
You can now Google yourself senseless to tweak your new OSX to all the requirements you need. Keep an eye on the Mavericks post above as a guide or reference. However, before doing so, you may want to download and install the latest updates and the latest Beta, which is Beta 3 (at the time of this writing.)
Good Luck!
VGA
does anyone know any kext i can use for virtualbox VGA ? The graphics performance on the OS X VM is too low.
renatofdds said:
does anyone know any kext i can use for virtualbox VGA ? The graphics performance on the OS X VM is too low.
Click to expand...
Click to collapse
What do you mean "too slow". Works just fine for me. Maybe you have a slow PC and not enough RAM allocated for you VM. If you wanna find the driver used, look in the drivers detected on any VM guest OS, like linux or windows.
E:V:A said:
What do you mean "too slow". Works just fine for me. Maybe you have a slow PC and not enough RAM allocated for you VM. If you wanna find the driver used, look in the drivers detected on any VM guest OS, like linux or windows.
Click to expand...
Click to collapse
The 3D performance of the generic driver (VESA) uses a software rasterizer wich is too low on performance. I have assigned 8GB of RAM and 4 cores to the VM, on an i7 Haswell, its not insufficient hardware.
Try executing launchpad and you will know what i'm talking about.
@renatofdds Unfortunately I don't think a kext could fix that problem. It seem to be either a poor video driver from Oracle, or wrong cpuid settings, that doesn't allow for native correct 3D graphics on the processor. (I have the same setup as you.) So my best bet is that you head over to the Virtualbox support forum at Oracle, and look under "OSX" guest on "OSX" hosts. And see how they do it, or ask for help there. (They don't allow for OSX guests on Win hosts.)
E:V:A said:
@renatofdds Unfortunately I don't think a kext could fix that problem. It seem to be either a poor video driver from Oracle, or wrong cpuid settings, that doesn't allow for native correct 3D graphics on the processor. (I have the same setup as you.) So my best bet is that you head over to the Virtualbox support forum at Oracle, and look under "OSX" guest on "OSX" hosts. And see how they do it, or ask for help there. (They don't allow for OSX guests on Win hosts.)
Click to expand...
Click to collapse
OK man, tks for the suggestion.
Related
Below is a download with a flashable.zip and an ubuntu.img file.
Why is this good?
The new ics updates do not allow webtop with out a dock, kernel problems same problems as the overclocking the new kernel does not support modules at this time, Or the modules are not compiled with the new kernel. This is a suppliment then for those who wish to have a linux distro. If you plug in your phone with a regular hdmi cable you can use the pocket-cloud.apk to view the ubuntu desktop
Working:
Flash plugin 10 full desktop version, (This is a full desktop flash. from ubuntu desktop version of flash 10.1)
synaptic download
apt-get
vncserver
openssh
gdm
python
FIreFox 3.5
Firefox flash plugin working
Mozilla Thunderbird
Working on:
Wine for games, it is currently installed but missing some files if you manually download and install each lib file you should have a working wine, might be able to edit a repository
This is a chrooted enviroment made for android phones, this enviroment was build from scratch using ubuntu to build a chrooted enviroment from scratch for a rootfs file system.
To begin make sure your sdcard-ext has 3.5 gb free or more.
(if you wish to use sdcard instead of your sdcard-ext then you will have to make an edit in the linux.sh file)
To chroot into linux once your have the files in the correct spots you need only to have terminal emulator, and a vncserver connect (pocket-cloud.apk is free from the market.)
You will need to be rooted or the ability to mount a loop file, and chroot into a chrooted enviroment wich usually requires root privleges. Although there may be ways to vnc connect into it with out being rooted using adb, and adb shell, that will not be discussed here.
So if your rooted, and your have 3.5 gb free space on sdcard-ext then run the:
bioniclinux.zip from your recovery
This will push the files to the correct place, except the ubuntu.img
Put the ubuntu.img on sdcard-ext
by typeing:
adb push ubuntu.img /sdcard-ext/ubuntu.img
In your terminal emulator type: linux
(after you used the bioniclinux.zip and pushed the ubuntu.img to sdcard-ext.)
open pocket cloud free
type:
host: localhost or empty or 127.0.0.1 or 127.0.0.0.1 (not sure how many zeros)
username: ubuntu
password: ubuntu
prot 5901
Not Working:
Wine, missing files, wine is still installed if you remove it you could posiible free up some space,
apt-get update
apt-get dist-upgrade This can be fixed if you edit the /etc/acct/source.list
and fix missing packages and delete old sources, The only reason I left it was because upgradeing can breake Flash player 10.1
and dist-upgrade can breake the whole .img If anyone wants to upgrade and fix the source.list let me know
Change log:
Removed uneeded files. Freed up close to 1 gb
installed Chess 3d
upgraded apt-get
Ubuntu.img V2
if you cannot connect with those settings try
username: android
password: android
prot 5901
and if those dont work try
username: android
password: ubuntu
prot 5901
Having troubles make sure you put the ubuntu.img in the correct place, and name is case sensitive, so make sure it says ubuntu.img not Ubuntu.img
check the linux.sh in /system/xbin/linux.sh or /system/bin/linux.sh make sure it is in both places with adb you can do
adb pull /system/xbin/linux.sh
adb push /system/bin/linux.sh
adb pull /system/xbin/linux
adb push /system/bin/linux
That might fix the problem of not seeing the linux comand, if you cant mount your .img make sure inside the linux.sh it is in the correct location
for example one of the linux.sh might say /sdcard/ubuntu.img
the other might say /sdcard/-ext/ubuntu.img
for the location make sure your location of the image is in same place as the linux script
if you have the linux script or the zip you can put it on your sdcard in the same place as your ubuntu.img and type from the terminal
losetup /dev/block/loop0 /sdcard-ext/ubuntu.img
mount -o rw -t ext3 /dev/block/loop0 /data/local/mnt/Linux
Click to expand...
Click to collapse
then try
su
sh /sdcard/linux.sh
or
sh /system/xbin/linux.sh
or
sh /system/bin/linux.sh
Click to expand...
Click to collapse
that should start the chrooted enviroment
Anyone want to upload the .img to a better file sharing site? send me link for download, faster download speed would be nice.
One thing I noticed was the hostname.sh has beenchanged to an upstart service, so in order to get internet you must make an edit to the rc_enter.sh you could use a root explorer or nano editor in terminal
nano /etc/init.android/rc_enter.sh
Chane the /etc/init.d/hostname.sh to:
service start hostname
Also it would be a good idea to add this to the file just before service start hostname put:
echo "localhost 127.0.0.1 192.168.1.1 192.168.157.1 192.168.43.1" > /etc/init/hostname
echo "localhost 127.0.0.1 192.168.1.1 192.168.157.1 192.168.43.1" > /etc/hostname
echo "nameserver localhost" > /etc/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/resolv.conf
echo "nameserver 192.168.1.1" >> /etc/resolv.conf
echo "nameserver 192.168.157.1" >> /etc/resolv.conf
echo "nameserver 192.168.43.1" >> /etc/resolv.conf
(Just to be sure i also added)
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
_
Now you should get internet threw it. If you have wifi you dont need to take those steps but you will not have internet until you are connected to wifi unless you follow those steps to edit the hostname
{
"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"
}
Images of desktop and me posting and editing a post on xda forums using the full desktop version of firefox for ubuntu.
I hope we all can start to build on this img and get it to be more flavor full and userfriendly and even get some gaming.
I see that valve works now with linux maybe we can get valve to work with this.
Also this is very productive for developers, I did not install any developing tools for space, but if you wish you could easily install several tools to help you. maybe an android-kitchen or even cynanogen build tools to build kernal and such. pull your kernel config and you could easily all on your phone with this linux create and edit your bionics kernel. Or build a whole rom with cynanogen mod tools.
Another thing that would be good would be cpu overclocking and maybe even unlocking the second cpu for chrooted eviroment. It already runs when using the android, but maybe we can unlock it fully to always run like the first cpu.
Made for sdcart-ext place ubunti.img there. More updates and info will be coming hope you enjoy.
androidifyme said:
Why is this good?
The new ics updates do not allow webtop with out a dock, kernel problems same problems as the overclocking the new kernel does not support modules at this time, Or the modules are not compiled with the new kernel.
Click to expand...
Click to collapse
compatible with leak 232+?
if using stock motoblur, is this retasking the HDMI port to enable ubuntu OVER or in addition to webtop (if we have a lapdock or HD dock for example)?
sounds interesting.
At this time it does not effect webtop, I bet we could get this to work for the webtop2sd or even the regular webtop.
When the usb drive is mounted on your pc there is an action script that allows for usb mass storage, when your bionic is connect to a dock script runs to hijack the hdmi and turns on webtop, that webtop script we already have edited a few post I have seen to add different desktops and such, It would be possible to put our img in webtop if we didnt touch the scripts used to mount it. basically you would have to replace webtop with this but keep the scripts in tact to lauch webtop from your dock, if anyone wants to help I would be willing to look into this.
yes, we would need to hijack the hdmi_hotplug and either insert a mount/remount like webtop2sd, OR ... what the eventual goal of that project was... boot from USB! (was this ever accomplished on Atrix?) for that matter, do we even *need* to hijack HDMI if webtop 3.0 can run the chrooted VNC natively like a phone would? (could be a staging point)
i believe with ICS device drivers, it would be a lot simpler to hot swap linux distros on thumb drives for example, or even more daring.. dual boot into bactrack anyone?
Here is a way we can make the linux distro take over the screen and usb event paths, its originaly for the nook but if anyone wants to take a look.
http://thomaspolasek.blogspot.ca/2012/04/arch-linux-lxde-w-xorg-mouse-keyboard_16.html
Setup our DNS (only have to do this once) echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "nameserver 4.2.2.2" >> /etc/resolv.conf
Update arch pacman -Syu
Install Xorg and LXDE on your Arch Linux Chroot pacman -S xorg-xinit xf86-video-fbdev xf86-input-evdev lxde
Edit your /etc/X11/Xorg.conf file cd /etc/X11 rm Xorg.conf sudo wget http://y.uk.to/files/xorg.conf (or try http://pastebin.com/raw.php?i=8CM7NKhd) You may need to edit the device references for the keyboard and mouse in Xorg.conf! (/dev/input/event5 and /dev/input/event4 might be different) More information is found below
Go on your Nook Tablet and Run the Nook Tweaks app Turn on USB-Settings ---> USB Host Mode Turn on USB-Settings ---> External VBus
Connect your USB devices to your Nook Color Tablet Obtain a female to female usb connector Connect a hub to one side of the female connector Connect a usb keyboard/mouse to the hub Connect a mini-usb to the nook and then to the other side of the female connector
If you need to figure out what devices your keyboard and mouse are on, then cd /dev/input
run the cat command on each input* .... and check if your keyboard/mouse input results in a change on the output from cat for example, when I press a key on my keyboard cat /dev/input/event5 outputs some binary characters.
Now we will setup our linux framebuffer (****UPDATE 1****)
pikpok sent me this suggestion in the comments section.
You can use "setprop ctl.stop media & setprop ctl.stop zygote" in adb shell to kill zygote server and media, if you want to return to android you can replace stop with start and run again, it's much better than chmod
Now we will setup our linux framebuffer (hack)
Try pikpok's suggestion first, if it doesn't work then try out this hack of mine.
Temporary hack to stop the android system from accessing the frame buffer device. I plan on writing a patch that toggles access to this framebuffer from linux. But right now what I do is I change permissions on the framebuffer and then wait for the android system to lose connection to the framebuffer device. Once android loses the connection I run the Xorg server on the framebuffer, it hijacks the graphics output. If anyone has any idea on a better way to this please feel free to post on the comments section. Eventually (again this is a hack) the android system will appear to freeze (the screen stops updating)
cd /dev/graphics chmod 000 /dev/graphics/fb0 chown root:root /dev/graphics/fb0
If the graphics don't freeze right away, then keep running and killing the xorg server over and over until it does.
Start LXDE session (starts Xorg Server) xinit /usr/bin/lxsession &
If everything is configured good, you will get a full LXDE desktop with mouse and keyboard support. For any xorg server problems, have a look at the /var/log/Xorg*.log file
To stop the xorg server you can run (not the safest way but it doesn't really matter for this) killall X
BAM. Fully working linux system using the linux framebuffer with mouse/keyboard support.
In addition to support the USB keyboard and mouse, it is possible for other USB devices that are support ed by linux to be connected. Example of devices such as USB-DVI, USB-SERIAL, Arduino, etc...
Notes about the SD Card and EMMC:
It is possible to chroot into any part of the filesystem of Nook as long as you have rwx access. For my personal usage I chroot into the 8th partition on the EMMC (~4GB) of space and run Arch Linux from there, I find the EMMC runs faster than the SD Card.
that is definately an interesting option, i actually have a nook & xoom i could try this out on. i think that working within the API provided by moto for HDMI cloning might be the most direct and "seamless" display option. if im not mistaken the webtop itself scales and optimizes any application into "webtop" (basically tablet) mode. this is different from a simple cloning, which is preferable the if distro was being run through VNC.
there IS however a dock configuration for webtop (2.0 im sure of, need to test 3) where the display is outputed through HDMI, but the phone display is turned into a simulated mouse and keyboard combo. this would mean it is theoretically possible to run the chrooted OS when HDMI cable is detected, and automatically retask the phone as a HID. bluetooth / usb input is also supported at this point through the dock USB ports.
additionally, HDMI audio routing is only enabled @ 1 resolution output setting (the one for lapdock, need to double check #s). utilizing this feed would probably be the ultimate goal of the linux system (and would give the OS the highest resolution audio possible to work with)
cheers!
Can I get a bump already.
Will this work with any Droid Bionic ROM? I want to install on a custom ROM for use with my LapDock.
Can this allow me to install Ubuntu as WebTop onto the Liquid ROM I am running on the Safe Partition?
Droid Bionic Running:
Unsafe Leaked 6.7.232 Webtop v3.0.0 / LapDock functions perfectly
Safe Strapped Liquid 1.5-ICS-TARGA-MR2.3 is Rooted / No Webtop / my lapdock only charges
I would like to point out that WINE will never work with this as WINE is not a CPU emulator (WINE after all stands for Wine Is Not an Emulator).
Therefore althrough WINE does work on ARM you could only run ARM compiled .exe files which right now there arnt any, this may change once Windows 8 is released for ARM but still it will be pretty useless.
Other than that great to see more device specific guides! the more devices the better
zacthespack said:
I would like to point out that WINE will never work with this as WINE is not a CPU emulator (WINE after all stands for Wine Is Not an Emulator).
Therefore althrough WINE does work on ARM you could only run ARM compiled .exe files which right now there arnt any, this may change once Windows 8 is released for ARM but still it will be pretty useless.
Other than that great to see more device specific guides! the more devices the better
Click to expand...
Click to collapse
I don't know what I am doing here but you're wrong, WINE does work for ARM and apps for x86 works and ARM plus WINE, I tried it myself a long ago with my Atrix, I think I disscused this with you before.
TravisAntonio said:
I don't know what I am doing here but you're wrong, WINE does work for ARM and apps for x86 works and ARM plus WINE, I tried it myself a long ago with my Atrix, I think I disscused this with you before.
Click to expand...
Click to collapse
I was simply repeating whats been said here http://wiki.winehq.org/ARM if you have shown otherwise then great and by all means prove me wrong but you might want to talk with the WINE ARM team to let them know what does work
This is all pretty interesting... im liking the idea of linux on my phone. I cant wait to see how this progresses.
Sent from my Transformer Pad TF300T
Wow! Thank you for this.
I do have an issue though. I would love to get this running.
I entered the information in to PocketCloud as a VNC (is that correct?) and then when I launch "linux" in terminal emulator it says that the linux module isn't found in Busybox.
I followed the instructions (at least I think I did). I flashed the zip in recovery.
What am I missing?
Thank you.
check the linux.sh in /system/xbin/linux.sh or /system/bin/linux.sh make sure it is in both places with adb you can do
adb pull /system/xbin/linux.sh
adb push /system/xbin/linux.sh
adb pull /system/xbin/linux
adb push /system/bin/linux
That might fix the problem of not seeing the linux comand, if you cant mount your .img make sure inside the linux.sh it is in the correct location
for example one of the linux.sh might say /sdcard/ubuntu.img
the other might say /sdcard/-ext/ubuntu.img
for the location make sure your location of the image is in same place as the linux script
if you have the linux script or the zip you can put it on your sdcard in the same place as your ubuntu.img and type from the terminal
su
sh /sdcard/linux.sh
or
sh /system/xbin/linux.sh
that should start the chrooted enviroment
androidifyme said:
One thing I noticed was the hostname.sh has beenchanged to an upstart service, so in order to get internet you must make an edit to the rc_enter.sh you could use a root explorer or nano editor in terminal
nano /etc/init.android/rc_enter.sh
Chane the /etc/init.d/hostname.sh to:
service start hostname
Also it would be a good idea to add this to the file just before service start hostname put:
echo "localhost 127.0.0.1 192.168.1.1 192.168.157.1 192.168.43.1" > /etc/init/hostname
echo "localhost 127.0.0.1 192.168.1.1 192.168.157.1 192.168.43.1" > /etc/hostname
echo "nameserver localhost" > /etc/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/resolv.conf
echo "nameserver 192.168.1.1" >> /etc/resolv.conf
echo "nameserver 192.168.157.1" >> /etc/resolv.conf
echo "nameserver 192.168.43.1" >> /etc/resolv.conf
(Just to be sure i also added)
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Click to expand...
Click to collapse
Issue With Above Info
Just wanted to mention this is actually off. The nameserver [DNS server] you have listed here. Sorry if this was covered before don't have time to read all replies... 192.168 is reserved only for LAN use [not to be accessible to the Internet only behind a router on a private network]. So those may work for you via WiFi on your home network, but to others they won't be able to talk to those servers [unless a few have those same addresses on their private network setup for the same function].
Then Why does it still work stupid?
It works because the last one you have 8.8.8.8 is a public DNS on the internet so Ubuntu is essentially looking for a website address and 192.168.1.1 FAIL 157.1 FAIL 43.1 FAIL 8.8.8.8 FOUND.
Resolution [verified]
Also, OpenDNS [a very fast and nice FREE DNS nameserver service available worldwide] [http://www.opendns.com/home-solutions ] (scroll down to almost bottom of page there is a dark bar that lists the 2 server addresses if they were to ever change, or you want to check out signing up for an account so you can parental control and/or set custom settings like landing page for not found address (HTTP 404 error) etc.]
Free Worldwide Name [DNS] Servers:
Primary Nameserver [DNS]: 208.67.222.222
Secondary Nameserver [DNS]: 208.67.220.220
[you can use either server as a primary or secondary they just ask you to use 222.222 as primary and 220.220 as Secondary].
So, if you want to edit the OP with those they should work in 99.99% of all cases [can't vouch for people behind the Great Firewall of China or elsewhere if they severely filter the internet [speaking to the majority here]]. Now, usually if using a router [most cable modems are routers] then if you view the below info about opening a command prompt you can open one and type ipconfig [or if not on Windows view your basic network connection info]. Look for an entry labeled Gateway: This in 99% of cases will also have a DNS server [very basic] running and would be the address you could use when on your home network [99% of routers are generally set to 192.168.1.1 or 192.168.10.1 [or some variation on this theme [and yes you could in theory use almost any set of IP addresses on a LAN but I am trying to help the majority of general users]].
Verification [semi as ping helps you know if there is even a computer, but doesn't tell you if that computer runs a DNS server sprcifically]
If you want to see if an address works for you? Then try the following [Windows command listed as that again is the majority Linux users usually know their own ping but replace ping with hping if not sure as there is a good chance hping has been installed by default or by another package already]
Open a command prompt [click Start, run, then type "cmd" [as usual without quotes] in the white box and click OK or hit <ENTER>
When the Black Screen with white text [default yours may be different but should be text only and usually says C:\Blah]
Now type:
Ping 192.168.43.1 [or whatever can even use a website like www.google.com if you would like but we are checking certain addresses here]
Now it should start listing some text on the screen. If you see something like [I stopped it usually default for ping is to try 4x then exit]:
Code:
Pinging 192.168.43.1 with 32 bytes of data:
Request timed out.
Ping statistics for 192.168.43.1:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
You can't talk to anything at that address [whether it is your network or the internet doesn't have that address anywhere, or there is something suchas a firewall blocking the ping command [be sure to enable ECHO ping on your router if not [usually is] and that you check your firewall settings to be sure that it is not filtering the packets].
Sorry this got long, just wanted to explain the issue, how to address it and how to verify things fully.
---------- Post added at 01:22 PM ---------- Previous post was at 01:12 PM ----------
ErisDroid? said:
Wow! Thank you for this.
I do have an issue though. I would love to get this running.
I entered the information in to PocketCloud as a VNC (is that correct?) and then when I launch "linux" in terminal emulator it says that the linux module isn't found in Busybox.
I followed the instructions (at least I think I did). I flashed the zip in recovery.
What am I missing?
Thank you.
Click to expand...
Click to collapse
Search the Play Market for Busybox installer [I prefer the one by Sterricson] and run that, grant it root [be patient on first open it takes it a min to request root usually], then allow it do it's checks [see status bar at top of screen fill as it runs and I suggest you say yes to the backup]. When it finishes tap Install and tap Normal install if prompted. This will ensure your busybox is correctly installed [it should have been your system saying command not found not busybox command not found something is a tiny bit off should have been more like sh: can't find command unless you actually used busybox as the shell itself [not advised is doable but not advised and I don't know any devs on XDA who have set their ROMs to do so [could be wrong I am sure there are devs here I don't know ]].
Ensure you ran his installer zip in recovery so that the linux file is in /system/xbin [or system/bin [some phones go one way others go the other and yes both directories are usually always there as even if it uses xbin usually there are file links to /system/bin for everything that is actually in /system/xbin].
If his installer sets it up in a way that your phone deosn't like follow as the OP states and open the zip find that file named linux [with no extension in Windows should appear as a white blank page icon]. Once you find that file just copy to your SDCard where the ubuntu.img file is.
Once done open terminal
Type in the following
cd /sdcard <ENTER enter key go key whatever your keyboard uses>
now type linux <ENTER> and that starts the server you should see starting vnc server or something verifying it is starting [unless author of the script omitted that which I highly doubt]
NOW try opening androidvnc, pocket cloud, whatever you use [I prefer AndroidVNC, but to each their own].
---------- Post added at 01:29 PM ---------- Previous post was at 01:22 PM ----------
zacthespack said:
I would like to point out that WINE will never work with this as WINE is not a CPU emulator (WINE after all stands for Wine Is Not an Emulator).
Therefore althrough WINE does work on ARM you could only run ARM compiled .exe files which right now there arnt any, this may change once Windows 8 is released for ARM but still it will be pretty useless.
Other than that great to see more device specific guides! the more devices the better
Click to expand...
Click to collapse
Yeah this is right when speaking of Android and WINE, THOUGH THEY ARE APPARENTLY WORKING TO GET WINE ON NATIVE ANDROID YAY, oh and yes they have a proof of concept video, BUT they have yet to release it at all.
As noted by the above quote it is indeed a CPU issue, WINE is coded really only for use with x86 based processors only, you have to basically re-code the whole thing so that it can use ARM instructions AND works with Android [theres a catch because yes there is BASIC support in WINE for ARM as of 2009 [See link below] which is 99.99999% of all Android devices [there are a couple now and more coming from intel with x86 based processors but TRUST me unless they SEVERELY upgraded x86 code ARM code is MUCH better battery use wise so I won't be buying any x86 based mobile devices myself.
http://wiki.winehq.org/ARM
Original poster I am replying to was thinking more along these lines An ANDROID based WINE client that runs is not quite to market yet see:
http://www.engadget.com/2013/02/04/wine-android-windows-apps/
Another Note here folks, I love the Windows, Linux, Unix Emulator [Title as listed on play market Just search Windows Emulator it comes up as first result [as of this writing]] As it does as it says allows the install of one of those systems in Android. I am not sure how well it may run on the Bionic [I use a Tmo Galaxy S2 [T989 1.5GHz Dual Core] and the awesome Nexus 7 [ Grouper 32G] I am here as I saw this while looking at other stuff for another person's phone I am working on
P.S see how easy that was when there is a disagreement or you want to be sure you give fully qualified answers you just do a little internet searching and find reputable [best you can] sources that may settle the question between you
Can someone upload Ubuntu.img
Can someone please upload the Ubuntu.img to somewhere besides 4shared.
Just for clarification:
The first reason I put the 192.168.0.1 and 157, and 43 is because the chrooted enviroment will connect to internet if your phone has a data connection pretty much no matter what because of 8.8.8.8 yes, but if no data, I added those dns for the wifi and virtual wlan0 and lan0, or eth0 on your phone and most of those default to the above addresses,
Second the wine that is installed on here is the wine/arm, but I think there are some broken dependencies, I was only trying to get wine to run for windows programs not an os, like the qemu emulator i think there is an apk in the market or online for it.
Yes I forgot to say you would need busybox to install and run this, so first make sure you have busybx installed, rooted, /system/xbin/linux, /system/xbin/linux.sh, /sdcard/ubuntu.img
open terminal type :
linux
[email protected]:vncserver
then connect to your localhost:ubuntu:ubuntu:5901
if you have any question or errors dont be affraid to message me or post here.
RealPariah said:
Issue With Above Info
Just wanted to mention this is actually off. The nameserver [DNS server] you have listed here. Sorry if this was covered before don't have time to read all replies... 192.168 is reserved only for LAN use [not to be accessible to the Internet only behind a router on a private network]. So those may work for you via WiFi on your home network, but to others they won't be able to talk to those servers [unless a few have those same addresses on their private network setup for the same function].
Then Why does it still work stupid?
It works because the last one you have 8.8.8.8 is a public DNS on the internet so Ubuntu is essentially looking for a website address and 192.168.1.1 FAIL 157.1 FAIL 43.1 FAIL 8.8.8.8 FOUND.
Resolution [verified]
Also, OpenDNS [a very fast and nice FREE DNS nameserver service available worldwide] [http://www.opendns.com/home-solutions ] (scroll down to almost bottom of page there is a dark bar that lists the 2 server addresses if they were to ever change, or you want to check out signing up for an account so you can parental control and/or set custom settings like landing page for not found address (HTTP 404 error) etc.]
Free Worldwide Name [DNS] Servers:
Primary Nameserver [DNS]: 208.67.222.222
Secondary Nameserver [DNS]: 208.67.220.220
[you can use either server as a primary or secondary they just ask you to use 222.222 as primary and 220.220 as Secondary].
So, if you want to edit the OP with those they should work in 99.99% of all cases [can't vouch for people behind the Great Firewall of China or elsewhere if they severely filter the internet [speaking to the majority here]]. Now, usually if using a router [most cable modems are routers] then if you view the below info about opening a command prompt you can open one and type ipconfig [or if not on Windows view your basic network connection info]. Look for an entry labeled Gateway: This in 99% of cases will also have a DNS server [very basic] running and would be the address you could use when on your home network [99% of routers are generally set to 192.168.1.1 or 192.168.10.1 [or some variation on this theme [and yes you could in theory use almost any set of IP addresses on a LAN but I am trying to help the majority of general users]].
Verification [semi as ping helps you know if there is even a computer, but doesn't tell you if that computer runs a DNS server sprcifically]
If you want to see if an address works for you? Then try the following [Windows command listed as that again is the majority Linux users usually know their own ping but replace ping with hping if not sure as there is a good chance hping has been installed by default or by another package already]
Open a command prompt [click Start, run, then type "cmd" [as usual without quotes] in the white box and click OK or hit <ENTER>
When the Black Screen with white text [default yours may be different but should be text only and usually says C:\Blah]
Now type:
Ping 192.168.43.1 [or whatever can even use a website like www.google.com if you would like but we are checking certain addresses here]
Now it should start listing some text on the screen. If you see something like [I stopped it usually default for ping is to try 4x then exit]:
Code:
Pinging 192.168.43.1 with 32 bytes of data:
Request timed out.
Ping statistics for 192.168.43.1:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
You can't talk to anything at that address [whether it is your network or the internet doesn't have that address anywhere, or there is something suchas a firewall blocking the ping command [be sure to enable ECHO ping on your router if not [usually is] and that you check your firewall settings to be sure that it is not filtering the packets].
Sorry this got long, just wanted to explain the issue, how to address it and how to verify things fully.
---------- Post added at 01:22 PM ---------- Previous post was at 01:12 PM ----------
Search the Play Market for Busybox installer [I prefer the one by Sterricson] and run that, grant it root [be patient on first open it takes it a min to request root usually], then allow it do it's checks [see status bar at top of screen fill as it runs and I suggest you say yes to the backup]. When it finishes tap Install and tap Normal install if prompted. This will ensure your busybox is correctly installed [it should have been your system saying command not found not busybox command not found something is a tiny bit off should have been more like sh: can't find command unless you actually used busybox as the shell itself [not advised is doable but not advised and I don't know any devs on XDA who have set their ROMs to do so [could be wrong I am sure there are devs here I don't know ]].
Ensure you ran his installer zip in recovery so that the linux file is in /system/xbin [or system/bin [some phones go one way others go the other and yes both directories are usually always there as even if it uses xbin usually there are file links to /system/bin for everything that is actually in /system/xbin].
If his installer sets it up in a way that your phone deosn't like follow as the OP states and open the zip find that file named linux [with no extension in Windows should appear as a white blank page icon]. Once you find that file just copy to your SDCard where the ubuntu.img file is.
Once done open terminal
Type in the following
cd /sdcard <ENTER enter key go key whatever your keyboard uses>
now type linux <ENTER> and that starts the server you should see starting vnc server or something verifying it is starting [unless author of the script omitted that which I highly doubt]
NOW try opening androidvnc, pocket cloud, whatever you use [I prefer AndroidVNC, but to each their own].
---------- Post added at 01:29 PM ---------- Previous post was at 01:22 PM ----------
Yeah this is right when speaking of Android and WINE, THOUGH THEY ARE APPARENTLY WORKING TO GET WINE ON NATIVE ANDROID YAY, oh and yes they have a proof of concept video, BUT they have yet to release it at all.
As noted by the above quote it is indeed a CPU issue, WINE is coded really only for use with x86 based processors only, you have to basically re-code the whole thing so that it can use ARM instructions AND works with Android [theres a catch because yes there is BASIC support in WINE for ARM as of 2009 [See link below] which is 99.99999% of all Android devices [there are a couple now and more coming from intel with x86 based processors but TRUST me unless they SEVERELY upgraded x86 code ARM code is MUCH better battery use wise so I won't be buying any x86 based mobile devices myself.
http://wiki.winehq.org/ARM
Original poster I am replying to was thinking more along these lines An ANDROID based WINE client that runs is not quite to market yet see:
http://www.engadget.com/2013/02/04/wine-android-windows-apps/
Another Note here folks, I love the Windows, Linux, Unix Emulator [Title as listed on play market Just search Windows Emulator it comes up as first result [as of this writing]] As it does as it says allows the install of one of those systems in Android. I am not sure how well it may run on the Bionic [I use a Tmo Galaxy S2 [T989 1.5GHz Dual Core] and the awesome Nexus 7 [ Grouper 32G] I am here as I saw this while looking at other stuff for another person's phone I am working on
P.S see how easy that was when there is a disagreement or you want to be sure you give fully qualified answers you just do a little internet searching and find reputable [best you can] sources that may settle the question between you
Click to expand...
Click to collapse
Thanks for the post, This is great help
Also if you wanted to try to highjack the hdmi instead of the phones frame buffer we might be able to do that.
by taking over /dev/graphics/fb1 ,I have not personaly tested this, or someone who worked on the webtop2sd might be able to use this instead of the webtop2sd linux versoin used.
You can use "setprop ctl.stop media & setprop ctl.stop zygote" in adb shell to kill zygote server and media, if you want to return to android you can replace stop with start and run again, it's much better than chmod
Now we will setup our linux framebuffer (hack)
Try pikpok's suggestion first, if it doesn't work then try out this hack of mine.
Temporary hack to stop the android system from accessing the frame buffer device. I plan on writing a patch that toggles access to this framebuffer from linux. But right now what I do is I change permissions on the framebuffer and then wait for the android system to lose connection to the framebuffer device. Once android loses the connection I run the Xorg server on the framebuffer, it hijacks the graphics output. If anyone has any idea on a better way to this please feel free to post on the comments section. Eventually (again this is a hack) the android system will appear to freeze (the screen stops updating)
cd /dev/graphics chmod 000 /dev/graphics/fb1 chown root:root dev/graphics/fb1
If the graphics don't freeze right away, then keep running and killing the xorg server over and over until it does.
Start LXDE session (starts Xorg Server) xinit /usr/bin/lxsession &
If everything is configured good, you will get a full LXDE desktop with mouse and keyboard support. For any xorg server problems, have a look at the /var/log/Xorg*.log file
To stop the xorg server you can run (not the safest way but it doesn't really matter for this) killall X
BAM. Fully working linux system using the linux framebuffer with mouse/keyboard support.
androidifyme said:
Just for clarification:
The first reason I put the 192.168.0.1 and 157, and 43 is because the chrooted enviroment will connect to internet if your phone has a data connection pretty much no matter what because of 8.8.8.8 yes, but if no data, I added those dns for the wifi and virtual wlan0 and lan0, or eth0 on your phone and most of those default to the above addresses,
Second the wine that is installed on here is the wine/arm, but I think there are some broken dependencies, I was only trying to get wine to run for windows programs not an os, like the qemu emulator i think there is an apk in the market or online for it.
Yes I forgot to say you would need busybox to install and run this, so first make sure you have busybx installed, rooted, /system/xbin/linux, /system/xbin/linux.sh, /sdcard/ubuntu.img
open terminal type :
linux
[email protected]:vncserver
then connect to your localhost:ubuntu:ubuntu:5901
if you have any question or errors dont be affraid to message me or post here.
Thanks for the post, This is great help
Also if you wanted to try to highjack the hdmi instead of the phones frame buffer we might be able to do that.
by taking over /dev/graphics/fb1 ,I have not personaly tested this, or someone who worked on the webtop2sd might be able to use this instead of the webtop2sd linux versoin used.
You can use "setprop ctl.stop media & setprop ctl.stop zygote" in adb shell to kill zygote server and media, if you want to return to android you can replace stop with start and run again, it's much better than chmod
Now we will setup our linux framebuffer (hack)
Try pikpok's suggestion first, if it doesn't work then try out this hack of mine.
Temporary hack to stop the android system from accessing the frame buffer device. I plan on writing a patch that toggles access to this framebuffer from linux. But right now what I do is I change permissions on the framebuffer and then wait for the android system to lose connection to the framebuffer device. Once android loses the connection I run the Xorg server on the framebuffer, it hijacks the graphics output. If anyone has any idea on a better way to this please feel free to post on the comments section. Eventually (again this is a hack) the android system will appear to freeze (the screen stops updating)
cd /dev/graphics chmod 000 /dev/graphics/fb1 chown root:root dev/graphics/fb1
If the graphics don't freeze right away, then keep running and killing the xorg server over and over until it does.
Start LXDE session (starts Xorg Server) xinit /usr/bin/lxsession &
If everything is configured good, you will get a full LXDE desktop with mouse and keyboard support. For any xorg server problems, have a look at the /var/log/Xorg*.log file
To stop the xorg server you can run (not the safest way but it doesn't really matter for this) killall X
BAM. Fully working linux system using the linux framebuffer with mouse/keyboard support.
Click to expand...
Click to collapse
That's interesting I would have thought you could run a script and grep the interface IP if you are tying the Cell in for data. I know this takes time and all, but what I would suggest is you could prolly throw it in the linux wrapper script you have or if that is too early in the process maybe throw a script that loads on login to the image to do so and re-build. Again I know you just started this and that takes time just throwing it out there..
Also, if it is for LAN WiFi doesn't DHCP run and able to grab an IP?
I understand the ARM deal, I just threw in the emulator name for those who don't understand what WINE truly is and are trying to find something to run a more robust Windows environment [why, I am not sure, but hey there it is LoL].
Right before the Introduction, I am not responsible for anything you do to you Phone, you are free to do or not to do what I am explaining to you so its on your own risk...
Introduction:
Ok guys so here we are, trying to install a Linux Distro on our awesome x86 Phone...
Damn this doesnt work because our Android is compiled in a different way than ARM Android so we have to wait for better Docs or someone who can get the bootloader to laod a different OS...
But you dont want to wait right?
So here we go, the only alternative:
Chroot into Linux
Description:
Chrooting lets you run annother Linux on top of the currently running Linux (what Android actually is...more or less).
So you mount an existing Linux and simply run it.
What I want to do:
I want to guide you through chrooting and setting up an Arch Linux on your RAZR i.
Requirements:
You need:
A micro SD card (I used a 8GB sized one but 4GB/more than 8 should also work, you just have to adjust some Steps)
An Arch Linux Image (I will give you a link)
(Not required but I will focus on this Platform because I use it myself and it works best, I guess)
A Linux PC running Virtual Box
Tutorial:
First you need an Arch Linux Image. Any other Linux Distro should work fine, but others also take up a lot more Space and Ubuntu for Example has many Problems running in Chroot (because Canonical did some S***).
I used this one:
Arch Linux 2012.10.06
Again, any Version should work fine, just took the latest one
So lets set up our System...
Start Virtual Box and create a new System.
Create a new Hard Drive and size it so it fits onto your micro SD.
I used 5 GB-7.5GB on a 8GB micro SD.
Insert the downloaded ISO FIle into the Virtual Box CD Drive and start your Virtual Machine.
Select the i686 mode (because or CPU is 32bit not 64bit)
If you have the wrong Keyboard Layout Follow this Keyboard Setup Keyboard Config
Next you need to partition the HDD: Partitioning the HDD
Now Install the Base System: Install the Base System
After this follow the next Steps on the Arch WIki (Generate an fstab, Chroot and configure the base system, Set the root password and add a regular user)
DO not reboot because you didnt create a Bootloader (not required for chrooting), instead go to the "Extra" Section and follow all Steps till troubleshooting (DO NOT REBOOT AND DO NOT STARTX this didnt work for, might for you, might not and then you have to cold reboot the VM)
Now you can reboot Again enter the Live System, load your keymap and chroot into the system
You might already install some Packages like a VNC server (pacman -S tightvnc) which will be required for a Graphical User Interface later...
To create the Image you need later, the easiest way for me to pull the Image out of the VM (which has no space for this Image) because the Virtual Box Plugin didnt work for me is sshfs.
I highly recommend to install an ssh server ond the sshfs system into you arch.
If you have done so, mount your PC from inside the VM so you can put the Image on your PC's HDD.
now to create an Image of your Arch theres one command and two ways:
You create an Image of the whole HDD (what I did)
You create an Image of the one Partition
I chose the first because i didnt want to put anything else on my micro SD, I cant confirm that the second way works but it is suppoes to so lets create the Image:
We make use of the Linux command dd, really, REALLY mke sure that you are executing from inside the VM since you can harm your HDD and dont forget the file extension....
First method:
Code:
dd if=/dev/sda of=/location/to/your/PC/HDD/imagefilename.img
The Second method (not confirmed):
Code:
dd if=/dev/sda1 of=/location/to/your/PC/HDD/imagefilename.img
where sda1 should be the partition you want to image...
This might take a loooooooong time
Now you have this Image, put your micro SD into an Adapter and put it into your PC.
Now find out the name of the SD, I used gparted and I found out that the name is sdc (could be sd + letter of alphabet)
Here the Ways split again:
The first Method completly overwrites anything that is on your microSD so make a backup, the second Way is just putting the created .img file onto the micro SD:
Method One:
Code:
dd if=/path/of/the/img/file of=/dev/sdc
Replace sdc with your micro SD letter, if you put in a wrong letter, you might overwrite your HDD so be careful, I am not responsible for what you do...
For me my Phone said, the micro SD is empty or has a wrong FIlesystem (its ext4) but you shouldnt care, we can mount it anyway...
Now copy the FIle mountscript.sh to the internal SD (the FIle is in this Posts Attachements)
Next open up a Terminal and type in:
Code:
cat /proc/partitions
You should get a list of all your Partitions, if you followed my Way, the last one should be your micro SD (look at the size) and called like mmcblk1p1
If you followed the Second Way, you dont need this Step...
Now type in the Terminal:
Code:
busybox sh /mnt/sdcard/mountscript.sh
the busybox in the beginning seemed required for me because our busybox is kinda strange...
You will be guide through a little setup, I hope it is selfexplaining...
When the script ran through successfully your terminal should look like [[email protected] /]#
In the next Post I will guide you through the Setup of the VNC Server
Any questions or something doesnt work? Just tell me
//Robert
Post reserved for VNC Tutorial
You can start by grabbing yourself this App...
Guess I forgot something
Added the mountscript as Attachemenet
did anybody try?
//Robert
this should fix network issues:
https://blog.tuinslak.org/socket-permission-denied
Hai Robbilie, After install with Ubuntu PC & turn off pc & All seem ok & at phone till [[email protected] /]# & open installed VNCwith name DLKS & 192.168.0.9 & port 5900 but cant handshake & also try many similar VNC still the same. Unlike our PC where on>boot>desktop shown & can play ? Pls advice. Thks.
i advice tiger vnc, but the console tells you the vnc server started?
btw its only 5900 when its on display 0 when its on display 1 its 5901 and so on...
the used display is shown in the console...
are you running the vnc from root?
How to run vnc from root? i only start separately,pls advice.Thks
if you have a vnc server installed in the chroot environment you need to run
vncserver -geometry 888x540
this is just to fit the phones resolution
I'm following your instructions for this. They are well written but I can't figure out the part about ssh and sshfs. What do you do for that step?
Is there seriously not an easier way such as opening the vdi image with some program and copying and pasting the files to my Windows desktop and then using something like IMGBurn to create an iso file and then convert it to an img file?
Ubuntu ?
Hello
I just see this old news when i would like to install Linux Mobile , any news about or link ?
http://www.firstpost.com/topic/prod...otorola-razr-i-video-9n_E6aapPSo-51417-1.html
Thanks
EDIT : http://sourceforge.net/projects/mpsdk/
How to install OSX Snow Leopard (10.6.3) as a Virtualbox VM
(on a 7 year old AMD and nVidia based HP Laptop)
This is definitely not one of my preferred XDA topics. But this info need to be out there.
Two years ago (2011) I tried to install Apple's OSX on my already aging HP
Pavilion laptop in a virtual VM (using Virtualbox). This without ever having
used OS X nor finding any clear instructions on how to make this happen.
Needless to say, I was not successful. However, since then, many people around
the world have started making their own "Hackintoshes", and so some better
bootloaders and tools have emerged.
So after finding an interesting open source program, that was only available
for OSX based Apples, I decided to try a OSX VM install again. But according
to many online-blogs and forums, it was pretty much against all odds. Not,
because it was impossible, but because of the lacking installation
instructions, and widely varied results highly dependent of the underlying
hardware. So I decided to attempt an out-of-the-box boot load by grabbing an
old iAtkos Snow Lepard distribution. Here are my results.
My Hardware:
Code:
[SIZE=2]OS: Windows Vista Home (32-bit x86)
Laptop: HP Pavilion dv9700 Notebook PC
BIOS: F32 2009-03-03
CPU: AMD Turion64 X2 TL-68 [BH-G2]
Motherboard: Quanta 30DA (nVidia MCP65) [nForce520, ID 0442]
Graphics: nVIDIA GeForce 8400M GS (G86M) with 256 MB VRAM
Network: nVIDIA nForce 10/100/1000
CPU-Z info: http://www.cpuid.com/softwares/cpu-z.html
CPU Bus Speed: ~200 MHz
CPU Multiplier: ~4
[/SIZE]
My Virtualbox/OSX distro Combination:
Code:
[SIZE=2]OSX Distro: iATKOS S3 v2 (June 2010)
OSX version: Snow Leopard 10.6.3
Virtualbox: 4.2.16 r86992
[/SIZE]
Distro downloads is generally considered Warez, but can be easily found by
Googling/Piratebay etc. and are not allowed to be linked to, from XDA. To know
more about what suits you, you should check iAtkos own site. However, although these
are great for testing your hardware compatibility/issues, it is strongly recommended
to just buy your own copy of OSX. That way you are both legal and get to have the
latest version running with only some minimal hacked modification to the Kernel,
drivers and Kext's...
I basically followed these instructions:
http://iatkos.me/forum/viewtopic.php?f=54&t=12269
http://anonymous00.hubpages.com/hub/Installing-Mac-OSX-On-Windows-Virtual-PC
http://www.macbreaker.com/2012/02/snow-leopard-virtualbox.html
http://www.macbreaker.com/2012/07/mountain-lion-virtualbox.html
...
To summarize:
1. Download and install Virtualbox
2. Change the default Virtualbox VM snapshot location,
to use a disk that is not part of the Windows installation.
I.e. Not on default C:, but any other. This is for performance.
3. Download the iATKOS S3 V2 distribution from any torrent site.
Or directly from iATKOS website below.
4. [ Naah, there are already too many ways of doing this. Google yourself tired! ]
To my pleasant surprise both the bootloader and installer worked without a
hitch right out-of-the-box into Virtualbox. This gave me good hope to
continue. But after installation according to above instructions, I rebooted
and disabled boot CD to go native, and ... no boot. VM machine started booting
process up to the gray Apple logo and then froze. No spinner but CPU running
very high. Trying again to boot using many different boot flags and various
verbose safe-boot's etc. It would always hang at the same place.
Code:
[SIZE=2][Hit F8 key during boot.]
...
Boot> -v -x
...
[WARNING] "Extra/DSDT.aml not found"
...
[/SIZE]
Funny enough this was shown until I clicked anywhere outside the
Virtualbox VM window, at which point the VM screen would just go
black. Thus I concluded that the only way this could happen, was
that it was either a video or USB problem.
Now, apparently everyone whoever attempted putting OSX on a non-apple
machine has gotten to this point, so while Google showed 100's of
thousand's of hits, none of them were any good to me, apart some bits
and pieces. These are the bits and pieces.
During the initial installation, there is a point where you can change
various boot options, including Kernel's, patches, drivers etc. That is
exactly what we need to do! Don't skip this, or you will have to
erase/reformat and re-install your VM again.
The problem? The default installation options:
a) are not meant for AMD processors,
b) not meant for 32-bit processors,
c) not using nVidia video drivers
d) not allowing certian boot options.
To fix this, you need to make sure you activate the following boot
configuration items in the "Customize" menu after clicking button:
See the default options HERE.
Code:
[SIZE=2][B]Bootloader[/B]:
1. Chameleon v2 RC 4 32-bit Bootloader
[B]Bootloader Options[/B]:
2a. 32-bit boot Boot in 32-bit format, 64-bit is default otherwise.
2b. Graphics Enabler Enable some nvidia specific graphics options
2c. USB In case of USB problems...
[B]Patches[/B]:
3a. /Extra directory
3b. fakesmc
3c. Disabler
3d. RTC/RTC
3e. EVO Reboot
3f. Modified Kernels: Qoopz 10.3.0 32-bit AMD friendly Kernel
3g. USB ???
[B]Drivers[/B]:
4.Main Hardware/SATA/IDE: <all> ahci sata dan jmicron sata
5.VGA/nVidia: NVenabler allow many legacy nVidia drivers
[/SIZE]
[I actually recommend leaving out the USB related support until you are sure it is needed.]
After accepting and installing with these options, you'll be waiting a very
long time >30 min with a progress-bar that is not visibly moving and making you
think several times that nothing happens and it has failed. But then, there it
is!
Similarly, after disconnecting CD (iATKOS S3V2 Boot image), and restarting the
VM, you can boot with verbose mode, and you'll see a lot of errors and
messages, and then nothing happens at all, but you can enter text without any
effect. Just Wait! Then boom, there it starts up with Apple logo and colored
spinner. Very slow, probably due to a bunch of faulty drivers and time-outs.
But you're running OSX! The next trick is how to tweak this success into
something we can actually use.
Post Installation:
Code:
1. Install the Virtualbox additions:
a) In the Virtualbox host menu "Devices", select "Install Guest Additions.."
b) In your guest OS, go into the "VBOXADDITIONS_4." desktop CD-icon.
c) I actually never got this to work, since the CD-image in ([B]b[/B]) doesn't contain any OSX support...
2. Go into "System Preferences" and:
a) select "Energy Saver". Then set all timeouts to "never" and disable sleep modes.
b) select "Desktop & Screen Saver". Then set the "Start screen saver" bar to "never".
c) select "Software Update". Then uncheck the "Check for updates:".
d) Set time-zone, date and time in "Date & Time".
3. Go into "xxxxx" ...
4. <TBA>
Other Resources:
-------------------------------------------------------------------
http://www.osx86.net/ Drivers, DSDT, kext, tools, files etc.
http://iatkos.me/
http://www.hackintosh.com/
http://www.osx86project.org/
http://www.insanelymac.com/
http://www.hackint0sh.org/osx86-snow-leopard-212/
http://iatkos.me/forum/viewforum.php?f=54
http://www.insanelymac.com/forum/forum/178-osx86-106-snow-leopard/
OSX:
http://www.insanelymac.com/forum/files/file/65-amd-kernel/
http://www.souldevteam.net/blog/category/osx86/osx86-virtual-machines/
http://www.souldevteam.net/blog/2013/02/06/os-x-mountain-lion-vmware-image-amd/
http://anonymous00.hubpages.com/hub/Installing-Mac-OSX-On-Windows-Virtual-PC
http://www.tonymacx86.com/user-buil...77x-up5-th-8gb-ram-gtx-660ti-100-working.html
http://www.macbreaker.com/2013/07/a-look-at-amd-hackintoshing-mac-os-x.html
http://lifehacker.com/5938332/how-to-run-mac-os-x-on-any-windows-pc-using-virtualbox
Patched Kernels:
http://wiki.osx86project.org/wiki/index.php/Patched_Kernels
http://www.insanelymac.com/forum/files/category/6-kernels/
Mountain Lion: (x64 only!)
http://www.macbreaker.com/2013/01/install-mountain-lion-iatkos-ml2-hackintosh.html
http://www.macbreaker.com/2012/07/mountain-lion-virtualbox.html
http://www.macbreaker.com/2013/01/iatkos-ml2-mountain-lion-virtualbox.html
Snow Leopard:
http://www.macbreaker.com/2012/02/snow-leopard-virtualbox.html
Some Particular Files:
NVENABLER http://www.osx86.net/files/file/1322-nvenabler/
HP Pavilion series USB fix for Leopard 10.5.x 1.0 http://www.osx86.net/files/file/3297-hp-pavilion-series-usb-fix-for-leopard-10-5-x/
Kexts for nVidia GeForce 8400 GS 1.0 http://www.osx86.net/files/file/247-kexts-for-nvidia-geforce-8400-gs/
A few other bootloader options to try:
Code:
arch=i386
DSDT=0
wait=yes
npci=0x2000
fsb=<busspeed in mhz> busratio=<muliplier>
GraphicsEnabler=Yes
USBFix=Yes
UHCIreset=Yes
For a more complete description of various bootloader options see HERE:
http://www.insanelymac.com/forum/to...-install-snow-leopard-retail-on-amd-pc-osx86/
http://iatkos.me/forum/viewforum.php?f=54
Virtualbox Resources:
http://dlc.sun.com.edgesuite.net/vi...VirtualBox_Extension_Pack-4.2.18.vbox-extpack
http://dlc.sun.com.edgesuite.net/virtualbox/4.2.18/VBoxGuestAdditions_4.2.18.iso
http://download.virtualbox.org/virtualbox/
http://www.mail-archive.com/[email protected]/maillist.html
ENJOY!
I have mountain lion installed on vmware, currently downloading a newer version of ml from a "legit" source to try and install it on my laptop, the internet says it works, last time I tried it didn't
but maybe I was doing something wrong and now I'm wiser
nice info, man!
This guide is intend to help you with "installing" Ubuntu 14.04 (12.04 also works) on the Amazon Fire TV 2 after @rbox recovery has been setup. Only headless mode is possible, similar to Ubuntu Server, but it still makes a nice little ARMv8 development box. Starting X.org or running systemd based Linux distributions will likely never be possible due to features missing from the Amazon kernel. Creative use of the framebuffer is possible if desired, maybe eventually a terminal emulator could be started. As long as you don't mount and modify mmcblk0pX there should be no possible way to mess up Android or brick the device. It's 100% reversible by just removing the SD card. You accept all responsibility for what you do with this work should something go wrong and the device becomes inoperable. With disclaimers and precursor knowledge out of the way let's get started.
To follow this guide you will need:
A micro SD card (2 GB+ recommended)
A Linux system
To login into Ubuntu you will need either:
A 1.8 V TTY USB serial device connected to the UART
A pair of USB serial devices and a null modem cable
I actually used a pair of Xbee's for testing the ttyUSB0 stuff, so hence a pair of FTDI chips would also work.
Preparing the SD Card
To get started you need to first partition the micro SD card:
Type = MBR
Part 1 = 100 MB, Fat32 (vfat)
Part 2 = Remainder, Ext4
Extract the attached zip file to the root of the first partition (extracted filename must be "ramdisk-recovery.cpio.lzma"). This is an alternative initramfs that simply uses busybox to clean up from the partial Android boot and prepare the filesystem for regular Linux. Extract an Ubuntu core root filesystem archive, ubuntu-core-14.04.4-core-arm64.tar.gz, to the root of the second partition as the root user (to preserve ownership/permissions). Make sure you sync or eject the device when done with this work so the data gets flushed to the SD card.
Now we need to make a few changes to the root filesystem to avoid usability issues and allow logins.
Replace /etc/fstab with the following contents to correct some mount options. This "disables" SELinux which fixes dpkg errors and some other login annoyances.
Code:
/dev/mmcblk1p2 / ext4 defaults,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs ro,relatime 0 0
Replace /etc/init/console.conf with the following contents to allow logins from the UART. Once the root password has been set (root is disabled by default) you can remove "-a root" if desired.
Code:
# console - getty
#
# This service maintains a getty on console from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -s -a root console
Create /etc/init/ttyUSB0.conf with the following contents to allow logins from an attached USB serial device. This should help people who don't want to take apart their device to solder wires onto the UART test points. SSH would of course be an alternative but it's not installed by default in Ubuntu core and this guide is about the building blocks not providing pre-made images (yet). Since udev doesn't work due to devtmpfs not being enabled in the kernel you will need to attach the USB serial device before booting for this to work. As before you can remove "-a root" later if desired once the root password is set. Also you should change the baud rate if needed.
Code:
start on (tty-device-added ttyUSB0)
stop on (runlevel [!2345] or tty-device-removed ttyUSB0)
respawn
exec /sbin/getty -L -a root 115200 ttyUSB0 vt102
Preparing the Fire TV
Until the search order for the initramfs file is changed by @rbox you will need to rename the initramfs on the system partition so it will continue to search for one on the SD card or USB stick. You need to connect to the device using adb either over USB or the network to execute the following commands.
Code:
adb$ su
adb# mount -o remount,rw /system
adb# mv /system/recovery/ramdisk-recovery.cpio.lzma /system/recovery/ramdisk-recovery.cpio.lzma.bak
adb# mount -o remount,ro /system
Right now this prevents "su" from working, which should be fixed by @rbox in due time. To get "su" working again you should extract the original recovery initramfs file to a USB stick and boot the device with that USB stick inserted instead of the previously created SD card. Then to restore "su" you can repeat the above steps just swapping the order of the files in the "mv" command.
Booting Ubuntu
After connecting your serial device of choice simply insert the SD card and power on the device. It's that easy! With luck you should get a shell prompt that is already logged in as root. It's a good idea to set the root password before going much further. The device isn't too useful without networking, so you can install more packages. To solve that connect an ethernet cable (since it's simpler) and type "dhclient eth0" to get online. At this point you can install openssh-server using apt-get or do anything else you'd normally do on an Ubuntu VM or headless Ubuntu system. I'm interested in hearing what people plan to do with a more-or-less high-end ARM development system.
Tips and Tricks
NOTE: These changes, unless otherwise noted, are performed while logged into the target Ubuntu system.
Setting the Hostname
You can change the hostname using the following command:
Code:
echo sloane > /etc/hostname
You should also create a simple /etc/hosts file that matches the chosen hostname.
Code:
127.0.0.1 localhost
127.0.1.1 sloane
Enable Ethernet at Boot
Create the file /etc/network/interfaces.d/eth0 with the following contents:
Code:
auto eth0
iface eth0 inet dhcp
Allow Users Network Access
Since we are stuck running an Android kernel you need to create the following group and add users who need network access (such as ping) to this special group.
Code:
groupadd -g 3003 aid_inet
usermod -G aid_inet -a root
usermod -G aid_inet -a <username>
Removing Failed Services
There are a few services that fail to start due to hardware limitations. We should just prevent them from starting in the first place. We have no VT support enabled in the kernel (boo) so we can just remove the ttyX login prompt services. Also the console setup doesn't work since our console is a serial device not a virtual terminal or other "graphical" type terminal emulator.
Code:
rm /etc/init/tty?.conf
echo manual > /etc/init/console-font.override
echo manual > /etc/init/console-setup.override
Fix /dev Hotplug
As stated before udev doesn't work due to missing kernel features. The busybox applet mdev is a simple replacement for most users. After installing the "busybox-static" package run the following command:
Code:
ln -s /bin/busybox /sbin/mdev
Now add the following line to /etc/rc.local before "exit 0".
Code:
echo /sbin/mdev > /proc/sys/kernel/hotplug
Pre-installing SSH
See: http://forum.xda-developers.com/showpost.php?p=65595013&postcount=13 (thanks @segfault1978)
Thanks a lot, that was exactly the thing I was searching for. Since before today the Raspi3 came out, this box is the cheapest ARMv8 development machine available. With your instruction I was able to login via SSH and install all required software for my development environment. No GUI needed for that, I'm doing all remotely via SSH. Again, thank you!
segfault1978 said:
Thanks a lot, that was exactly the thing I was searching for. Since before today the Raspi3 came out, this box is the cheapest ARMv8 development machine available. With your instruction I was able to login via SSH and install all required software for my development environment. No GUI needed for that, I'm doing all remotely via SSH. Again, thank you!
Click to expand...
Click to collapse
Awesome to hear that it worked for you. Just curious if you went the USB serial route or soldered to the UART pins.
There is also the Dragonboard 410c which is a quad core A53 but has a bit more than the raspberry pi. The price is higher though but it has been out probably a year or so. Just FYI. The raspberry pi 3 is a good deal.
zeroepoch said:
Awesome to hear that it worked for you. Just curious if you went the USB serial route or soldered to the UART pins.
Click to expand...
Click to collapse
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
---------- Post added at 09:09 PM ---------- Previous post was at 09:03 PM ----------
zeroepoch said:
There is also the Dragonboard 410c which is a quad core A53 but has a bit more than the raspberry pi. The price is higher though but it has been out probably a year or so. Just FYI. The raspberry pi 3 is a good deal.
Click to expand...
Click to collapse
Thank you for the hint, I'll have a look for the availability of this board in germany.
I'm facing a memory problem, resulting in a reboot of the device when all RAM is being used. My compile session takes more than 1.x GB of RAM for the quite complex compilation of all required packages. I can reproduce the situation where all memory is consumed and the device instantly reboots when hitting "no memory left" situation. Since "swapon" is not supported by the kernel (really?): is there any way to enable swap functionality, i.e. via a kernel module? How to overcome this situation where more memory is needed?
segfault1978 said:
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
Click to expand...
Click to collapse
That is pretty crazy, but since you knew the changes required it worked Not everyone I expected to have such experience. I figured someone might even try to do a qemu chroot or debbootstrap to preinstall openssh. Multiple ways to solve the same problem I guess.
segfault1978 said:
I'm facing a memory problem, resulting in a reboot of the device when all RAM is being used. My compile session takes more than 1.x GB of RAM for the quite complex compilation of all required packages. I can reproduce the situation where all memory is consumed and the device instantly reboots when hitting "no memory left" situation. Since "swapon" is not supported by the kernel (really?): is there any way to enable swap functionality, i.e. via a kernel module? How to overcome this situation where more memory is needed?
Click to expand...
Click to collapse
Looking at the default kernel config from the source code drop from Amazon I see:
Code:
# CONFIG_SWAP is not set
Swap can not be compiled as a module. Even if you chose to use a USB stick or something as the swap device It wouldn't work. Given that we can't change the kernel we can't try stuff like zram or zswap either. The only other suggestion I might have is if you're using "-j4" or something while compiling just remove that so it does a single threaded compile. I'm sure you already tried that. Beyond that you could look at using the Linaro AArch64 toolchain and cross compile. Since we're running Ubuntu you shouldn't need to worry about static binaries.
zeroepoch said:
Looking at the default kernel config from the source code drop from Amazon I see:
Code:
# CONFIG_SWAP is not set
Swap can not be compiled as a module. Even if you chose to use a USB stick or something as the swap device It wouldn't work. Given that we can't change the kernel we can't try stuff like zram or zswap either. The only other suggestion I might have is if you're using "-j4" or something while compiling just remove that so it does a single threaded compile. I'm sure you already tried that. Beyond that you could look at using the Linaro AArch64 toolchain and cross compile. Since we're running Ubuntu you shouldn't need to worry about static binaries.
Click to expand...
Click to collapse
Unfortunately, I'm not compiling with parallel processes (I'm compilig Icinga2 for arm64), I'm running
Code:
dpkg-buildpackage -us -uc
within the source package. One single cpp call consumes so much memory (which is crazy in my eyes, never seen such a big compiler process until today), so I'll investigate the option of cross compiling and afterwards creating the deb file outside of the machine.
Code:
cd /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base && /usr/bin/aarch64-linux-gnu-g++ -DI2_BASE_BUILD -Doverride="" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -pthread -std=c++11 -Wno-inconsistent-missing-override -fPIC -I/root/icinga2-2.4.3 -I/root/icinga2-2.4.3/lib -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib -I/root/icinga2-2.4.3/third-party/execvpe -I/root/icinga2-2.4.3/third-party/mmatch -I/root/icinga2-2.4.3/third-party/socketpair -o CMakeFiles/base.dir/base_unity.cpp.o -c /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base/base_unity.cpp
I'm a novice in android devices: What would be required to use a custom kernel? A hacked boot loader, which is not available for the AFTV2?
segfault1978 said:
I'm a novice in android devices: What would be required to use a custom kernel? A hacked boot loader, which is not available for the AFTV2?
Click to expand...
Click to collapse
Yep... we need to be able to use fastboot to boot an unsigned kernel and initramfs (boot.img). I tried at one point to overwrite the boot partition with own image and it failed to boot. Since I had the preloader stuff worked out already I was able to restore the original boot image and get it working again.
On a side note, if you don't mind could you post the list of packages needed to install SSH server from rc.local? Others might find that useful. To get around the unset password issue you could have also saved a public key in /root/.ssh/authorized_keys which would also avoid you needing to change /etc/ssh/sshd_config to allow password logins as root.
segfault1978 said:
within the source package. One single cpp call consumes so much memory (which is crazy in my eyes, never seen such a big compiler process until today), so I'll investigate the option of cross compiling and afterwards creating the deb file outside of the machine.
Code:
cd /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base && /usr/bin/aarch64-linux-gnu-g++ -DI2_BASE_BUILD -Doverride="" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -pthread -std=c++11 -Wno-inconsistent-missing-override -fPIC -I/root/icinga2-2.4.3 -I/root/icinga2-2.4.3/lib -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu -I/root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib -I/root/icinga2-2.4.3/third-party/execvpe -I/root/icinga2-2.4.3/third-party/mmatch -I/root/icinga2-2.4.3/third-party/socketpair -o CMakeFiles/base.dir/base_unity.cpp.o -c /root/icinga2-2.4.3/obj-aarch64-linux-gnu/lib/base/base_unity.cpp
Click to expand...
Click to collapse
I see you are not using -pipe which is good, but a quick search suggested something that might not be simple since this package has it's own build system but changing from -O2 to -O1 might help.
I noticed that Debian has the package available for the same version and already built for arm64.
https://packages.debian.org/sid/icinga2
Maybe you already tried that. You could try going back to jessie which is probably an older version but I think most jessie packages work with Ubuntu 14.04.
zeroepoch said:
Yep... we need to be able to use fastboot to boot an unsigned kernel and initramfs (boot.img). I tried at one point to overwrite the boot partition with own image and it failed to boot. Since I had the preloader stuff worked out already I was able to restore the original boot image and get it working again.
On a side note, if you don't mind could you post the list of packages needed to install SSH server from rc.local? Others might find that useful. To get around the unset password issue you could have also saved a public key in /root/.ssh/authorized_keys which would also avoid you needing to change /etc/ssh/sshd_config to allow password logins as root.
Click to expand...
Click to collapse
This is the list of packages I manually downloaded for ARM64 (unfortunately I used Debian packages which worked first, but leads to a hell situation afterwards when dealing with other dependencies; be sure to use Ubuntu packages in order to avoid problems afterwards):
Code:
busybox_1.22.0
libedit2_3.1
libgssapi-krb5
libk5crypto3
libkeyutils1
libkrb5
libkrb5support0
libwrap0
openssh-client
openssh-server
openssh-sftp-server
This is the piece of calls in /etc/rc.local, right before the exit:
Code:
dpkg --force-all -i /*.deb > /install.log 2>/install.err
echo $? >> /install.log
echo "installation finished" >> /install.log
It took about 1-2 minutes before SSH started to work automatically, you can mount the SD card afterwards in another system in order to check the written logfiles.
Here are some notes for getting wireless working. In addition to the normal OS steps (installing wpasupplicant or wireless-tools and editing /etc/network/interfaces or using wicd) you will need some firmware files from /system (/dev/mmcblk0p13).
Code:
mount -o ro /dev/mmcblk0p13 /mnt
cp -r /mnt/etc/firmware/ /lib/
cp -r /mnt/etc/Wireless /etc/
umount /mnt
segfault1978 said:
None of these methods (since I was in my weekend and all cables and adapters reside in my office)
I placed all .deb-files for openssh-server including all requiremens onto the microSD card, and placed a call "dpkg -i /*.deb" with logging options in /etc/rc.local. I also configured network by mounting the sd card, editing /etc/network/interfaces, and last changed /etc/shadow to have a valid root account for login. It took my some try-and-error loops, but finally it worked as expected. Call me crazy, but I succeeded without any hardware.
Thank you for the the fire tv guide.
Click to expand...
Click to collapse
So, what's the verdict on this? I want to use my firetv 2 as an emby server. Is it worth it trying to get Ubuntu to run?
Sent from my Mi A1 using Tapatalk
mrchrister said:
So, what's the verdict on this? I want to use my firetv 2 as an emby server. Is it worth it trying to get Ubuntu to run?
Click to expand...
Click to collapse
If it has arm64 packages and headless you can give it a try. If you don't like it you can just revert the ramdisk and go back to Android.
Ok sweet, thanks for the reply
Sent from my Mi A1 using Tapatalk
Just curious if anyone's tried running Plex server on this?
I've been looking for a better solution without shelling out $500+ for a dedicated NAS. AFTV is tiny so I could hardwire it and hide it away.
Thanks
I got the same idea. Right now the firetv is still being used as a media streamer but I'm thinking of doing this soon
Minimal Arch Linux installation instructions
NOTICE: I am not responsible if something happens with your device, proceed at your own risk. It is always recommended to follow Arch's own installation guide, even though these instructions below are from it already just more simplified.
Welcome to my post about installing Arch Linux on UEFI 64bit systems. These instructions were first tested in VMs, and then I installed it on my main system. Both were successful. Please follow the instructions very correctly, and don't miss anything. If there is an error, don't panic, do these instead:
Check if you typed the command correctly, if you didn't, no need to panic further. Just type it again.
Search online about the error, it is possible that a solution is already there for you.
I just want to also add that, whatever happens with your device is not my responsibility. These instructions were done under UEFI 64bit systems, even in the VM there is a setting which lets you enable ‘Enable EFI (Special OSes only)’ (Oracle VM VirtualBox) and it acts as a UEFI system. I am not the one to be guiding you with other errors, so for that reason please post it in a separate place. These instructions were written by me and a friend of mine that helped with most of the things, I am a beginner as much as you are while following these instructions.
Before continuing, visit this link to install the ISO from a server, it's usually named like "archlinux-2021.03.01-x86_64.iso". Then prepare an installation medium by checking here. Once you have created a live USB for Arch Linux, shut down your PC. Plugin your USB and boot your system. While booting keep pressing F2, F10 or F12 key (depending upon your system) to go into boot settings, then choose "Boot Arch Linux (x86_64)", if that didn't work then check online to do it accordingly.
Notes before starting:
1. if you type commands and it says "you cannot perform this unless you are root" or similar, add "sudo" before the main command which then asks for your password and runs it as root.
2. In some areas characters are capitalized, if the CAPS LOCK isn't working do this combination: SHIFT+the key word. As in if I want to type the letter W capitalized, I hold SHIFT and then click W.
---
Table of Content:
I. Minimal Arch Linux Installation Instructions
A. Verifying boot mode
B. Connecting to the internet
C. Updating system clock
D. Creating the partitions
E. Formatting the partitions
F. Mounting the partitions
G. Installing the necessary system packages
H. Configuring the system
I. Applying localization
J. Setting up hostname
K. Setting up root password
L. Setting up bootloader
M. Exiting and restarting
N. Adding a non-root user
O. Setting a password for the account
P. Giving the user permissions
Q. Giving super user privileges to all the users in the wheel group
R. Installing KDE Plasma
II. Things worth looking at
III. Programs worth installing/looking at
---
I. Minimal Arch Linux Installation Instructions
A. Verifying boot modeFirst, run this command to know if your system is UEFI based:
ls /sys/firmware/efi/efivars
If the result is empty, then don't continue. If it does have files, then it is UEFI based and you may continue.
B. Connecting to the internetConnect to internet by following this for wireless and this for others, usually there's no need if you're doing this in a VM. The instructions on the wiki are straight forward, I don't have to write it here.
C. Updating system clockIn order to update system clock, let's start it:
timedatectl set-ntp true
Now let's list the timezones available to see if yours is here:
timedatectl list-timezones
Then let's set your timezone:
timedatectl set-timezone Zone/SubZone
instead of "Zone/SubZone" insert one from the command that we did before, for example:
timedatectl set-timezone Canada/Eastern
Now let's check if it worked:
timedatectl status
If it doesn't say the timezone you set, then do the instructions again.
D. Creating the partitionsFirst type this (if you want to use fdisk, check here):
cfdisk
Delete all of your current partitions until it's 1 partition that has your full storage (by choosing each partition and then do "Delete" that's at the bottom), then create 2 partitions (by choosing "New" that's at the bottom when on an empty non-labeled partition storage without any type):
- The first with size 260MiB and with the type: EFI system partition. If you already have a partition for EFI system similar to this one then there's no need to do this again.
Now go back to the second one which has the rest of your storage (not the EFI system, the one that has no type), and create ("New" at the bottom) another one:
- With size rest (as in just click enter so all of the rest storage will be set to it) and with the type: Linux x86-64 root
After creating the 2 partitions with their correct sizes and the type, write the 2 partitions by first choosing the first one then there's "Write" at the bottom of the cfdisk place, just like you did with type and creating the partitions, choose the first partition then click "Write" and then type "yes", do this for the second partition as well. And then when you write both of the partitions, do "Quit" and run this:
wipefs -a device
Here ^ instead of "device" write the partition name of the second one that we created up, which has Linux x86-64 root. For example it can look like this: /dev/sda2, so you replace that with device, for example:
wipefs -a /dev/sda2
E. Formatting the partitionsNow let’s format the partitions we created (do cfdisk back to check if sda1 is EFI and if sda2 is the root partition! If it isn't rewrite it accordingly):
For the EFI system partition:
mkfs.fat -F32 /dev/sda1
For the root partition:
mkfs.ext4 /dev/sda2
F. Mounting the partitionsNow let’s mount the partitions (do cfdisk back to check if sda1 is EFI and if sda2 is the root partition! If it isn't rewrite it accordingly):
For the EFI system partition:
mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
For the root partition:
mount /dev/sda2 /mnt
G. Installing the necessary packagesThese packages are for the basic functionality of Arch Linux, we still didn’t go to the KDE installation. Please take these into consideration before continuing:
1. "intel-ucode" may be replaced, I use intel processor that's why I have written that package. Check here to install according to your processor, and replace “intel-ucode” with your processor’s package.
2. "linux" can be replaced with another kernel of your choice, this is the most stable for daily usage according to Arch Linux, check here to choose the kernel of your choice, and replace the package.
3. "efibootmgr" is needed by "grub" for EFI systems, it’s necessary to have it.
4. "nano" used for text editing which we will use later on, and "networkmanager" used for connecting to wifi with typing "nmtui", but we have to enable it first then restart the pc, as we move on we will enable it.
After choosing the packages that you will replace, if you will any, type this and replace the packages accordingly (if you have to replace some, feel free to add more but make sure you know how to use the package!):
pacstrap /mnt base base-devel linux linux-firmware nano intel-ucode grub efibootmgr networkmanager
H. Configuring the systemSince we installed the necessary packages, now we will configure the system. Run these commands separately:
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
Note for the next command: change “Zone/SubZone” according to what you put in C
ln -sf /usr/share/zoneinfo/Zone/SubZone /etc/localtime
hwclock --systohc
I. Applying localizationNow we will apply localization, follow these commands:
nano /etc/locale.gen
After running the command above, uncomment "en_US.UTF-8 UTF-8" OR the language of your choice.
Save the file and then run:
locale-gen
Now let’s create the configuration file:
nano /etc/locale.conf
Type this in the file: LANG=en_US.UTF-8
OR replace "en_US.UTF-8" with the language you uncommented before. Save it with CTRL+S and then quit (it should be written below the shortcuts for the operations, make sure to read them)
J. Setting up hostnameNow we will setup the hostname file, type this:
nano /etc/hostname
Then type a host name of your choice in the file and save it with CTRL+S and then quit.
Now we need to setup another file before moving on, run this command:
nano /etc/hosts
And type these in the file (respect the new lines! If a line is in a separate line, don't type it next to each other):
127.0.0.1 localhost
: :1 localhost
127.0.1.1 myhostname.localdomain myhostname
Replace "myhostname" with the hostname you put in the /etc/hostname file. Then save the file and quit.
K. Setting up root passwordNow let’s setup the root password, type:
passwd
And insert the password (it should prmopt up).
L. Setting up the bootloaderNow let’s setup the bootloader (GRUB), run these separately:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
M. Exiting and restartingExit chroot by typing "exit" and now restart by typing "reboot", the second it reboots remove the USB.
If you're in a VM type "shutdown now" and go remove the Arch Linux image from the VM settings (this is according to Oracle’s VM software) by going to the settings of your VM, then storage, then the one under "Controller: IDE", under the other tab in "Attributes" next to Optical Drive there's a CD icon, click on that and change from the ISO to your Host Drive.
After rebooting login by typing the username as "root" and the password the one you wrote before.
N. Adding a non-root userNow let’s add a non-root user, it’s not safe to use root as a daily usage account. Run this command and replace “user” with a username of your choice:
useradd -m user
O. Setting a password for the accountNow let’s set a password for that account, run this command and replace “user” with the username you put in N (from the previous step):
passwd user
P. Giving the user permissionsNow let’s add the user to the required groups, as in giving permissions. Run this command and replace “user” (the last word) with the username you created above (in step N):
usermod -aG wheel,audio,video,optical,storage user
For example if I created an account named “serjsx” then I run this command:
usermod -aG wheel,audio,video,optical,storage serjsx
Note: don’t be surprised if it doesn’t output anything, just move on. If something is wrong it’ll already tell you the error.
Q. Giving super user privileges to all the users in the wheel groupNow we will give the necessary privilege to the users that we create (either now or in the future, currently it’s the one we did in step N and O), run this command:
EDITOR=nano visudo
Uncomment (remove the #) the line that says:
# %wheel ALL=(ALL) ALL
Remove the # that’s at the beginning of the sentence, and now exit root account by typing “exit” and then login to your user (write the username of the account you created and then the password).
R. Installing KDE PlasmaNow let’s install KDE! KDE is one of the most popular desktop environments for Arch Linux, that's why I went with it. However, you can install any desktop environment you want after this step. Because, even without installing a desktop environment, you successfully installed Arch Linux on your system. You can check here to know about other desktop environments available for Arch Linux: https://wiki.archlinux.org/title/desktop_environment
You can check here to see my lightweight custom environment setup instructions: https://forum.xda-developers.com/t/arch-linux-lightweight-custom-environment-setup.4385985/
First, let’s enable Network Manager (nmtui) by running this command:
sudo systemctl enable NetworkManager
If it asks for your password just type it and click enter. Then type “reboot”, login, run “nmtui” and connect to your wifi.
Next, update your system by typing this command:
sudo pacman -Syu
Now let’s install the necessary packages, type these:
sudo pacman -S xorg-server plasma sddm gwenview konsole kate dolphin okular spectacle partitionmanager ark packagekit-qt5 appstream noto-fonts-emoji noto-fonts gvfs-mtp android-file-transfer android-udev
Note: there are several applications here ^ that I chose, which are: dolphin (file manager), kate (text editor), konsole (terminal), gnenview (picture viewer), okular (document viewer), spectacle (screenshot taker), paritionmanager (to manage your partitions), ark (archive extractor and other related), packagekit-qt5, noto-fonts noto-fonts-emoji (popular fonts), gvfs-mtp android-file-transfer android-udev (Android-related runtimes and software, giving you a better experience when trying to move files from your phone to your desktop) and appstream needed for Discover to install applications. You can add/remove any of these, these are just applications nothing related to the system, but make sure you install konsole or a terminal! Also you can just install kde-applications instead of the softwares I have added, kde-applications has ALL of the KDE applications (can include a lot of bloatware, but don't exclude packagekit-qt5, appstream, sddm, plasma and xorg-server!).
After the packages are installed, now let’s enable SDDM by typing:
sudo systemctl enable sddm.service
Just in case you want to check if the session is working, run this:
loginctl show-session $XDG_SESSION_ID
Type “reboot” to reboot, and after rebooting you should see SDDM login page! Type the password of your account and you should go in KDE.
This step is optional, but it is recommended because it will let you install packages from the AUR (user repisotary). We will also install yay by running these separately:
(Let’s install git in order to install yay afterwards with it)
sudo pacman -S git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
And now, one last thing to do before you enjoy your system. Sometimes Discover won’t work, you may face an issue, so it is recommended to reinstall appstream. Run this command:
sudo pacman -S appstream
If it says no application found, do it with yay:
yay -S appstream
That’s it! You should now have a full working OS, running Arch Linux. This is a very important thing to do nowadays, because Microsoft is installing more and more tracking solutions within their operating systems, and you may eventually ask yourself: "Do I really have control over what happens on this operating system?"
The answer is, "No". Linux distributions give you the control and freedom that you deserve, so what you did today is a great accomplishment and a good start. I hope you can learn more about the usage of this distribution by checking their wiki from this link: https://wiki.archlinux.org/
II. Things Worth Looking At
If you need help, go here: https://wiki.archlinux.org/title/Arch_IRC_channels
If you need help, go here: https://bbs.archlinux.org/
KDE: https://kde.org/
Arch Linux's installation guide: https://wiki.archlinux.org/title/Installation_guide
Arch Linux applications list: https://wiki.archlinux.org/title/List_of_applications
Best practices for hardening Arch Linux: https://wiki.archlinux.org/title/Security
Swap: https://wiki.archlinux.org/title/Swap
Pacman: https://wiki.archlinux.org/title/pacman
AUR: https://aur.archlinux.org/
Arch Linux - Desktop Environments: https://wiki.archlinux.org/title/desktop_environment
III. Programs Worth Installing/Looking At
Firefox/LibreWolf: if you choose Firefox, make sure to use https://ffprofile.com/ for adjusting the settings, the default settings aren't good enough. If you use LibreWolf, they're already there.
Firefox: sudo pacman -S firefox
Librewolf: yay -S librewolf-bin
GNOME Disk Utility: this is, in most cases, better than KDE's partition manager.
sudo pacman -S gnome-disk-utility
LibreOffice: FOSS office productivity tool, this is the best one you can get for Linux distributions.
If you want stable release:
sudo pacman -S libreoffice-still
If you want the latest features:
sudo pacman -S libreoffice-fresh
Xarchiver: even though Ark is installed already, Xarchiver has a smoother experience in most cases. However, you can still use Ark, eventually they result the same thing.
sudo pacman -S xarchiver
GIMP: this is the best image editor for Linux distributions, it is recommended to have it installed just in case you need it one day. Also did I forget to mention that it's free?
sudo pacman -S gimp
Check out the tutorials as well: https://www.gimp.org/tutorials/
Kdenlive: this is the best video editor for Linux distributions, and it's free!
sudo pacman -S kdenlive
zip, unzip: these three command line tools are used for extracting and compressing to zip format.
sudo pacman -S zip unzip
Read these to know how to use them:
zip: https://man.archlinux.org/man/zip.1
unzip: https://man.archlinux.org/man/unzip.1
Have a good day! Let me know if it worked with you