-
Notifications
You must be signed in to change notification settings - Fork 39
OpenXT Getting Things Done
DO NOT EDIT: This page has been migrated to Confluence:
https://openxt.atlassian.net/wiki/display/DC/Getting+Things+Done
This page is a bunch of salvaged notes from a former XenClient engineer. There are quite a few useful tips and instructions for just doing things on (Open)XT. It is being splatted here in its original form for now - if folks want to clean it up, re-organize it and add to it, please feel free.
- apply update 6000
- mouse pointer 5000
- native screen 4500
- wait screen 4000
- menu popup 3000
- tooltips 2000
- dialogs 950
- header 300
- menu bar 200
- footer 100
- content areas 1,0,-1
- mouse ponter 5000
- menu popup 3000
- tooltips 2000
- header 1800
- menu bar 1700
- footer 1600
- wait screen 1500
- dialogs 950
- content area 0
You can test this by logging on to root@autotest-1
experiments -m ludo --syncxt-test
if you need to reset the db on your machine (check the help to see if this is correct)
experiments -m ludo --wipe-database
First, delete something (/usr/lib/xui/images is good) to make room to do the resize. Alternatively steal from somewhere else e.g.
$ lvreduce -L -1G xenclient/storage
$ lvextend -L +1G xenclient/root $ resize2fs -p /dev/xenclient/root
Example using input daemon - you will probably need to extend xenclient/root first, as shown above.
$opkg update $opkg install gdb //installs the debugger program $opkg list //lists available packages - find the one you're looking for $opkg install xenclient-input-daemon-dbg //we had to run this twice to get it to success
$/etc/init.d/xenclient-input restart
ps auxw | grep input //to find the pid
$gdb /usr/bin/input_server [pid]
some gdb basics
$c // to continue $where // to get a stack trace $q // to quit
(This was on my HP 8470p so might vary a little bit)
- Enter BIOS setup
- Go to Security settings
- Set BIOS password to !XenR00t (they are zeros)
- In the security settings - clear security keys (If the option is there)
- go to TPM Embedded Security
- Enable Embedded Security Device State
- Save and reboot
- Enter BIOS setup again
- Go to Device Config and set TXT On
- Save and reboot into XC
- Open the XC terminal
- Type:
<code>nr <enter> tpm–setup <enter></code>
- Set the password to xenroot
- It will do it’s thing… then you need to reboot twice.
- Job done.
vi /config/repo-cert.conf to read: ALLOW_DEV_REPO_CERT='true'
10GB:
dd if=/dev/zero of=/storage/temp bs=1M count=$((10*1000))
on the device, edit /usr/lib/xui/script/constants.js and set KEYBOARD: true, around line 360
webkit_web_view_execute_script(web_view, "alert(window.XUICache.Host.publish_topic);");
git pull in these directories:
build/oe/repos/extra/ build/oe/xenclient/
newrole -r sysadm_r setenforce 0 sed -i "s/enforcing/permissive/" /etc/selinux/config
This works for UIVM or ICAVM
db-write "/xenmgr/bypass-sha1sum-checks" true xec-vm -n <name> --disk 0 set mode w
If already running:
xec-vm -n <name> reboot
Inside VM:
mount -o remount,rw /
put the below into: /etc/modprobe.d/blacklist-sound.conf
blacklist snd_hda_codec_intelhtml blacklist snd_hda_codec_idt blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hwdep blacklist snd_pcm blacklist pcspkr blacklist snd_timer blacklist snd blacklist soundcore blacklist snd_page_alloc
reboot the host change the VM config to passthrough the device:
xec-vm -u<vm uuid> add-pt-rule 0x0403 any any
OR
xec-vm -n<vmname> add-pt-rule 0x0403 any any
and start your VM.
For reference: 0x0403 is the PCI class for an audio device. You can see this from looking at the output in dom0 of lspci -vvv to find the PCI bus address of the device and then lspci -vvvn to see the device class of it.
touch /config/deferred_dom0_password touch /config/deferred_kb_layout touch /config/deferred_eula touch /config/deferred_language
tail -f /var/log/xenmgr.log
You can work out a lot of this from looking at the IDL http://git.uk.xensource.com/cgit.cgi/xenclient/idl.git/tree/interfaces
lists all of the properties and methods on xenmgr object. "-o /" specifies the object, and if not supplied is assumed to be "/".
xec xec -o /
calls one of the methods listed
xec list-vms
lists all of the properties and methods on the host object.
xec -o /host
this will Get one of the properties listed
xec -o /host Get build-info
to interrogate vms
xec-vm
these are equivalent and will show you properties and methods available on VMs
xec-vm -o /vm/[uuid] xec -o /vm/[uuid]
if you're getting a property that exists in more than one of the interfaces, then you need to explicitly set the interface
xec-vm -o /vm/[uuid] -i com.citrix.xenclient.xenmgr.vm.unrestricted Get state
to get VM by name
xec-vm -n "VM Name"
xec set show-msg-on-vm-start true
xec status-report-screen true
xec-vm -n "Windows XP" set-db-key policies.wired-networking true
xenstore-write /local/domain/1/report/state 1
dbus-send --system --type=signal /host com.citrix.xenclient.xenmgr.host.storage_space_low int32:5 dbus-send --system --type=signal / com.citrix.xenclient.updatemgr.update_state_change string:"downloaded-files" dbus-send --system --type=signal / com.citrix.xenclient.usbdaemon.device_rejected string:"device" string:"reason" dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.guestreq.requested_attention string:<UUID> objpath:<PATH>
dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.host.generic_message string:"Information" string:"Here is some important information" dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.host.generic_message string:"Information" string:"I will only appear for 5 seconds" int32:5000 dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.host.generic_message string:"Warning" string:"I am a warning" int32:5000 int16:1 dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.host.generic_message string:"Error" string:"I am an error and have a known ID" int32:5000 int16:2 string:"myid2" dbus-send --system --type=signal / com.citrix.xenclient.xenmgr.host.generic_message string:"Information" string:"The percentage I am showing is:" int32:5000 int16:0 string:"myid2" int16:69
dbus-send --system --type=signal / com.citrix.xenclient.xui.popup_network_menu uint32:1000 uint32:72 dbus-send --system --type=signal / com.citrix.xenclient.bed.notify.vm.vm_updated_reboot_required string:"<UUID>" dbus-send --system --type=signal / com.citrix.xenclient.bed.notify.vm.vm_updated_clean_reboot_required string:"<UUID>" dbus-send --system --type=signal / com.citrix.xenclient.bed.notify.vm.vm_lease_near_expiry string:"<UUID>" int16:1000 dbus-send --system --type=signal /com/citrix/xenclient/xenmgr/host com.citrix.xenclient.bed.notify.server.auth_required
dbus-send --system --type=method_call --print-reply --dest=com.citrix.xenclient.xenmgr /com/citrix/xenclient/xenmgr/host com.citrix.xenclient.xenmgr.host.status
db-ls db-ls -f db-ls /xenmgr db-rm /xenmgr/showMsgOnVmStart
ps ax (find midori process) strace -p <pid> (strace -p <pid> 2>&1 | grep gettimeofday > file) & sleep 10; kill %1 wc -l file
This was to see how often the javascript was polling for gettimeofday, since it affects power.
killall uid LD_PRELOAD=/usr/lib/libv4v-1.0.so.0.0.0 INET_IS_V4V=1 uid --no-daemonize > /tmp/uid.log
http://www.cam.xci-test.com/xc_dist/auto_install/master/
Boot a laptop from network, and either pick one of the options as described, or type in the name of a build that's not mentionned (e.g. cam-oeprod-123456-master)
The old school method is below:
ssh zoec@boiler (NIS password) cd /home/xc_tftpboot/pxe/grover ln -sf ../builds/master/cam-prod-008284-master/netboot/pxelinux.cfg
then boot laptop from network
You MUST set these in the global config
git config --global user.name 'Joe Bloggs' git config --global user.email 'Joe.Bloggs@citrix.com'
Optionally, the following will set up any branches you checkout/create in the future with the rebase property set to true, which is useful as this means when you pull, it is the same as running 'git pull --rebase':
git config --global branch.autosetuprebase always
To view the global config
git config --global -l
To view the local config (i.e. if you're in the directory of a git project it will show you specific config for that)
git config --local -l
git branch //show branches git branch <name> //create branch called <name> git checkout <name> //switch to branch called <name>
git reset --hard <hash> //reset tree to the <hash> of the commit git checkout <filename> //reset <filename> to origin
git stash //like diff stack :switch branch git stash apply //apply the diff stack on the branch you've switched to
git clone <fromtree> <totree>
git push <server> <branchfrom>:<branchto> //creates a remote branch based on your local branch git push <server> :<branch> //deletes remote branch git checkout -b test --track origin/test //checkout test branch tracked to test branch locally, create local test branch if not there
gitk git commit --interactive
git cherry-pick
xec -s com.citrix.xenclient.bed -o /com/citrix/xenclient/bed version
dom0: bed-cmd-ruby user logout
bed-deregister
win-tools.git master change (c7a19d4c9440725f741756485ca3b4ad0d8355eb) mocks out the XenGuestAgent code if debugger attached and either: CITRIX_GUI_DEBUGGING environment variable is defined as non-zero Or File named “IAmACitrixGUIDeveloperAndILikeToTest.txt” is in current working directory.
Add this:
( sleep 15s ; /etc/init.d/autofs restart ) &
to:
/etc/rc.local
By default the grub shell is disabled in XT. If you want it back you need to add this to your grub.cfg:
set edit_and_shell=1
Also the grub menu timeout is disabled with:
set timeout=-1
You can fix that up by commenting out that if/fi block and just set a timeout (in seconds):
set timeout=5