Category: Tips

  • Status of FlexRAID Jobs currently running

    While you manually trigger a FlexRAID job using the client FlexRAIDcmd.exe or when a FlexRAID Scheduled Job is started, its status is not displayed automatically in the Web UI currently opened.

    Click to Read More

    The Web UI needs to be reloaded in the Browser (Ctrl + F5). Doing so,

    • A status windows should now be displayed for the current process and
    • The job should also now appear in the “Command Execution Center” (FlexRAID UI > Your Configuration > Tool Box).
      • In that “Command Execution Center”, the “Pause”, “Resume” and “Abort” buttons should now be accessible.
    To get the status of the current job, using the FlexRAID client (FlexRAIDcmd.exe), type in a command prompt: [ps]FlexRAIDcmd.exe localhost – – status[/ps]

    Loading

  • WCF Services – The request failed with HTTP status 405: Method Not Allowed.

    This error occurred while testing WCF services moved from old Windows Servers 2003 on some of our new Windows Server 2008 R2 with IIS 7.5 (not on all). It appeared that depending on the setup sequence, .Net features were not all correctly configured, a.o. the .svc handlers…

    Click to Read More

    Here is the commands to be used in order to fix the setup:

    [bash]

    “C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe” -i -enable
    “C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\servicemodelreg.exe” -i
    “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe” -i -enable
    “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\servicemodelreg.exe” -ia

    [/bash]

    Loading

  • Use FlexRAIDCmd within PowerShell scripts to gracefully stop FlexRAID

    When using FlexRAID in Real-Time mode, the Pool must be stopped before stopping the service, i.e., also before shutting down the server. The best approach is to define a Shutdown Task in Windows to manage this…

    Click to Read More

    The Shutdown Task will run a Powershell Script using the FlexRaidClient to query the state of FlexRAID and trigger actions…

    The FlexRaidClient for windows, named FlexRaidCmd.exe, is not installed by default with the service. It must be downloaded as an Option here.

    The syntax is: FlexRAIDClient Host Port Timeout Command

    Once installed, one can use the Command “view” in a cmd prompt RUN AS Administrator on the server to Start/Stop the pool:

    FlexRAIDCMD localhost - - view class1_0 start
    FlexRAIDCMD localhost - - view class1_0 stop

    The – –  are used as “default values” for the Port and Timeout parameters
    class1_0 must be used for the new driver (=> class1) and to access the first pool (=> ID = 0).

    Starting the pool takes about ~50 seconds.
    Stopping the pool takes less than 10 seconds.

    If the command fails due to a syntax error, the error message can be found in the file log.log
    If the command succeed, there is nothing logged at all in the log file but a message displayed in the console (cmd prompt)

    Quote

    {“success”: true, “status”: null, “commandMessages”: [{“messageCode”: “successStoragePoolStarted”, “messageData”: [“V”]}], “serverMessages”: null}
    => Le pool de stockage est bien démarré pour le volume: V:…

    Notice: In a normal cmd prompt (not run as admin), the command returns an error due to an access denied on the log file:

    Quote

    log4j:ERROR setFile(null,true) call failed.
    java.io.FileNotFoundException: log.log

    Notice: if the Web UI was open before executing a Start/Stop, it must be reopened (or refreshed: CTRL-F5) otherwise it does not display the new state of the pool.

    Regarding the log.log file, this one has better be located in a fix location. Edit the file log4j.properties and set a path like:

    log4j.appender.default.File=C:/FlexRaid/FlexRAIDCmd.log

    Pay attention to the path separator! It’s not the one used by Windows but the one used in Java!

    To shutdown the FlexRaid server after stopping the pool, use the command shutdown-server.

    FlexRaid localhost - - shutdown-server

    If the pool is still running, we get the following response:

    Quote

    {“success”: false, “status”: null, “commandMessages”: [{“messageCode”: “errorShutdownNotAllowedStoragePoolServiceRunning”, “messageData”: []}], serverMessages”: null}
    => Pour pouvoir arrêter le service “host”, le service de pool de stockage doit être arrêté!

    If the service stops successfully, we get :

    Quote

    {“success”: true, “status”: null, “commandMessages”: [{“messageCode”: “successServerShutingDown”, “messageData”: []}], “serverMessages”: null}
    => Arrêt du serveur en cours…

    To restart the service, we can use:

    net start "FlexRaid"

    Notice: I didn’t find yet on the forum the difference between ‘FlexRaid localhost – – shutdown-server’ and ‘net stop “FlexRaid’. To my knowledge ‘net stop’ is synchronous and therefore maybe preferred to stop the service properly before shutting down ?! (FlexRaid message seems to indicate it’s asynchronous)

    Notice: If I run “FlexRaid localhost — shutdown-server” while the service is not running, I get obviously an exception “Connection refused: connect : ConnectException” but also this message in the log file (log.log):

    Quote

    ERROR: Unexpected character (‘A’ (code 65)): expected a valid value (number, String, array, object, ‘true’, ‘false’ or ‘null’)
    at [Source: java.io.StringReader@2f3d698; line: 1, column: 2] org.codehaus.jackson.JsonParseException: Unexpected character (‘A’ (code 65)): expected a valid value (number, String, array, object, ‘true’, ‘false’ or ‘null’)
    at [Source: java.io.StringReader@2f3d698; line: 1, column: 2]

    Now, here is how to create a “shutdown task” in the Local Group Policies of a Windows Server 2012:

    1) Enable script execution on the server
    a) On the Start Screen right-click the Windows PowerShell tile and run it As Administrator
    b) execute “Set-ExecutionPolicy RemoteSigned” in that shell and answer “Y”

    2) Create the script
    a) Create a file “StopFlexRaid.ps1” in your “FlexRaid Client” folder (e.g.).
    b) Type the script found bellow in the file (change the path to FlexRaidCmd)

    3) Use the script as Shutdown Script
    a) On the Start Screen, type “gpedit.msc” and run it.
    b) Go to the node “Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)”.
    c)  Edit “Shutdown” and in the tab “PowerShell script”, “Add” StopFlexRaid.ps1

    Notice:
    – Shutdown scripts are run as Local System, and they have the full rights that are associated with being able to run as Local System.
    – Shutdown scripts are run synchronously. The Server should wait on the script before shutting down.

    Here is the StopFlexRaid script:

    [ps]

    $srvName = "FlexRAID"
    $flexCmd = "C:\Program Files (x86)\FlexRAID 2.0 Client\FlexRAIDCMD.exe"
    $servicePrior = Get-Service $srvName
    #"$srvName is currently " + $servicePrior.status

    function ExitWithCode
    {
    param
    (
    $exitcode
    )
    "Exit with code $exitcode"
    #$host.SetShouldExit($exitcode)
    #exit
    }

    $flexCmd = "C:\Program Files (x86)\FlexRAID 2.0 Client\FlexRAIDCMD.exe"

    function ExecuteFRCmd([string]$cmd, [string]$hostname="localhost", [string]$port="-", [string]$timeout="-")
    {
    $error.clear()

    $pinfo = New-Object System.Diagnostics.ProcessStartInfo
    $pinfo.FileName = $flexCmd
    $pinfo.RedirectStandardError = $true
    $pinfo.RedirectStandardOutput = $true
    $pinfo.UseShellExecute = $false
    $pinfo.Arguments = "$hostname $port $timeout $cmd"
    $p = New-Object System.Diagnostics.Process
    $p.StartInfo = $pinfo
    $p.Start() | Out-Null
    $p.WaitForExit()
    $output = $p.StandardOutput.ReadToEnd()

    if ( $error.count -eq 0)
    {
    # Clean the JSON message (remove the trailing text (=> blabla))
    $output = $output -replace ‘(?<First>.*)=>.+’, ‘${First}’
    }
    else
    {
    $output = $null
    }

    return $output
    }

    function IsAnyTaskRunning()
    {
    $running = $FALSE

    $state = ExecuteFRCmd("status")

    if ($state -eq $null)
    {
    throw "Command failed to execute"
    }
    else
    {
    #Write-Host "States: $state"

    $process = $state | ConvertFrom-Json

    $message = $process.commandMessages.messageCode
    if ($message -eq "successNoProcessSinceServerStartup")
    {
    #Write-Host "No Process started since Server startup"
    }
    else
    {
    $processID = $process.status.referenceCode

    do {
    $state = ExecuteFRCmd("status "+$processID)
    $process = $state | ConvertFrom-Json

    switch ($process.status.status)
    {
    { @("STATUS_STARTED", "STATUS_PROCESSING", "STATUS_PAUSING", "STATUS_RESUMED", "STATUS_RESUMING") -contains $_ }
    {
    #Write-Host task $processID – $process.status.task – is running
    $running = $TRUE
    }
    { @("STATUS_COMPLETED", "STATUS_ABORTED", "STATUS_ABORTING", "STATUS_PAUSED") -contains $_ }
    {
    #Write-Host task $processID – $process.status.task – is not running
    }
    }

    $processID -=1
    } while (($processID -gt 0) -and ($running -eq $FALSE))
    }
    }

    return $running
    }

    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Warning -Category 0 -message "Graceful FlexRAID Shutdown triggered"

    $wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
    $prp = new-object System.Security.Principal.WindowsPrincipal($wid)
    $adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
    $IsAdmin = $prp.IsInRole($adm)
    if (-not $IsAdmin) {
    write-host "Current powershell process is not running with Administrator privileges"

    $message = "Graceful FlexRAID Shutdown not running with adhoc rights…"
    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Error -Category 0 -message $message
    cmd /c shutdown -a
    ExitWithCode -exitcode 2
    }
    elseif ($servicePrior.status -eq "Stopped")
    {
    "$srvName is already " + $servicePrior.status
    }
    elseif ($servicePrior.status -ne "Running")
    {
    "$srvName is not Running but " + $servicePrior.status
    }
    else
    {
    $running = IsAnyTaskRunning
    if ($running -eq $TRUE)
    {
    $message = "FlexRAID process(es) still running and preventing Server to shutdown…"
    $message
    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Error -Category 0 -message $message
    cmd /c shutdown -a
    ExitWithCode -exitcode 2
    }
    else
    {
    "Wait on the Storage Pool to stop. This can take a few seconds."

    $state = ExecuteFRCmd("view class1_0 stop")

    $state
    $abort = "False"

    if ( $state -eq $null)
    {
    "Storage Pool failed to stop"
    $error[0] $message = "FlexRaid Storage Pool failed to stop and is preventing Server to shutdown: " + $error[0] $message
    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Error -Category 0 -message $message
    cmd /c shutdown -a
    ExitWithCode -exitcode 2
    }
    else
    {
    $process = $state | ConvertFrom-Json

    $message = $process.commandMessages.messageCode
    if ($message -eq "successStoragePoolStopped")
    {
    "Storage Pool successfuly stopped"
    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Warning -Category 0 -message "Storage Pool stopped before shutting down"
    }
    else
    {
    if ($message -eq "errorNoActiveStoratePool")
    {
    "Storage Pool actually not started"
    }
    else
    {
    $abort = "True"
    $event = "FlexRaid Storage Pool failed to stop, preventing Server to shutdown: " + $state
    $event
    Write-Eventlog -Logname ‘Application’ -source ‘FlexRAID’ -eventID 1 -EntryType Error -Category 0 -message $event
    cmd /c shutdown -a
    ExitWithCode -exitcode 3
    }
    }

    if ($abort -eq "False")
    {
    $error.clear()
    Stop-Service $srvName
    if ( $error.count -eq 0)
    {
    Write-Host -NoNewLine "Waiting on $srvName to stop "
    $timeout = new-timespan -Minutes 1
    $sw = [diagnostics.stopwatch]::StartNew()
    while (((Get-Service $srvName).status -ne "Stopped") -and ($sw.elapsed -lt $timeout))
    {
    Write-Host -NoNewLine "."
    sleep 1
    }
    "."
    }

    $serviceAfter = Get-Service $srvName
    if ($serviceAfter.status -eq "Stopped")
    {
    "$srvName is now " + $serviceAfter.status
    ExitWithCode -exitcode 0
    }
    else
    {
    "$srvName failed to stop. It is now " + $serviceAfter.status
    ExitWithCode -exitcode 1
    }
    }
    }
    }
    }[/ps]

    Here is the code to start FlexRaid, useful while testing.

    [ps]

    $srvName = "FlexRAID"
    $flexCmd = "C:\Program Files (x86)\FlexRAID 2.0 Client\FlexRAIDCMD.exe"
    $servicePrior = Get-Service $srvName
    #"$srvName is currently " + $servicePrior.status

    function ExitWithCode
    {
    param
    (
    $exitcode
    )
    "Exit with code $exitcode"
    #$host.SetShouldExit($exitcode)
    #exit
    }

    if ( ($servicePrior.status -ne "Stopped") -and ($servicePrior.status -ne "Running"))
    {
    "$srvName is not Stopped but " + $servicePrior.status
    }
    else
    {
    if ($servicePrior.status -eq "Running")
    {
    "$srvName is already " + $servicePrior.status
    }
    else
    {
    Start-Service $srvName

    Write-Host -NoNewLine "Waiting on $srvName to start "
    $timeout = new-timespan -Minutes 1
    $sw = [diagnostics.stopwatch]::StartNew()
    while (((Get-Service $srvName).status -ne "Running") -and ($sw.elapsed -lt $timeout))
    {
    Write-Host -NoNewLine "."
    sleep 1
    }
    "."
    }

    $serviceAfter = Get-Service $srvName
    if ($serviceAfter.status -eq "Running")
    {
    "$srvName is now " + $serviceAfter.status

    $error.clear()
    "Wait on the Storage Pool to start. This can take a while."
    $stopPool = Start-Process $flexCmd -ArgumentList "localhost – – view class1_0 start" -NoNewWindow -Wait -PassThru

    if ( $error.count -eq 0)
    {
    ExitWithCode -exitcode 0
    }
    else
    {
    "Storage Pool failed to start"
    $error[0] ExitWithCode -exitcode 2
    }
    }
    else
    {
    "$srvName failed to start. It is now " + $serviceAfter.status
    ExitWithCode -exitcode 1
    }
    }

    [/ps]

    Loading

  • Change Windows Product Key before activation

    Here is two command lines to change a Windows product key (Vista,  7 or  8) and activate Windows. They must be executed in a Command Prompt “Run As Administrator”.

    1. To set a product key, run “slmgr.vbs -ipk <your product key>”
      • Ex.: slmgr.vbs -ipk 00000-00000-00000-00000-00000
    2. To activate windows after changing the key, run “slmgr.vbs -ato”

    Loading

  • Boot XMBCbuntu (XBMC Live) from a USB Key for testing purpose on Acer iDea 510

    The purpose: try if XBMC is compatible with the hardware of a PC before doing a full installation.

    Tested on my Acer iDea 510 with success. Works quite well and could replace Windows 8 Pro with the Media Center Pack !

    Click to Read More

    • Download Linux Live USB Creator, a.k.a. Lili, to create a bootable USB Key with a linux (Could also try Unetbootin USB Creator ?…).
    • Download an ISO of XBMCbuntu from here.
      • Version 12 RC 3 of XMBCbuntu is not yet supported by Lili. In addition this version does not include DXVA support yet…
      • To boot another linux, for any purpose, download an ISO for i386 compatible with Lili (When using UNetbootin downloads itself the selected Linux image).
    • Create the bootable USB Key following the how-to.
      1. Choose a USB flash drive in the dropdown list.
      2. Select the ISO of XBMCbuntu downloaded previously.
      3. Choose the size of persistent data (usually between 250 MB and 2 GB).
      4. Check all the options.
      5. Click the lightning button to start the creation.

    Tested on an HTPC Acer iDea 510:

    • First try failed. It stops with “load fallback graphics devices [Fail]”
    • Fix:
      1. Open the file syslinux\txt.cfg
      2. Search and Replace “quiet splash” with “quiet splash vmalloc=256M”
    • Second try: great !!! There is much less “lag” than in Windows 8 Pro + Media Center Pack
    • The remote control works fine so far. Including Shutdown (power-off).
    • Configuring the System to use Suspend instead of Shutdown works fine only once.
      • Suspend is really immediate (less than 1 sec).
      • However, I didn’t find yet how to configure the remote to wake-up the HTPC.
      • Pressing the power button on the HTPC wakes up XBMC is less than 2 sec
      • Trying again to Suspend the HTPC will result in a black screen with the cursor blinking… A hard reboot is required 🙁
    • During the use of XBMC, I was able to play HD movies from a SMB Shared Folder of my Synology.
    • Sound plays in 2.0 (stereo), also for movies in 5.1 (with downmix), but default volume is really low compared to the default volume in Windows 8. Within XBMC, I have to boost the Volume Amplification. So it’s not the best possible sound.
    • Sound doesn’t play correctly at all in 5.1 (although I have a 5.1 system and the movie is in DTS 5.1) ?!
    • I didn’t succeed yet to view any movie using UPnP. I can configure such a source, but don’t see any list of movies in that source ? (To be investigated)
    • During the shutdown, I noticed an error “Killing all remaining process [Fail]”. When shutdown is initiated from the remote control, XMBCbuntu asks to press enter to power-off after the error message here above.
    I am not 100% convinced at all that it will be a good choice to run on the Acer iDea 510 instead of Windows 7 and MCE…

    Loading

  • Android – No connection to any network – Go Locker

    I had an issue recently with my Samsung Galaxy S2: I was unable to call or send SMS. I was also not reachable anymore and appeared as not connected. I did not even succeed to force manually the connection to any network. After some unsuccessful investigation, I did reboot the device and noticed that I was not prompted anymore to provide my PIN code. The prompt was actually hidden by my Lock Screen for Go Locker 🙁

    Click to Read More

    For some reason, the configuration set for that lock screen was preventing the prompt for PIN code to appear. For sure, my mobile was configure to prevent any use without a valid PIN code. So voilà !

    A colleague of mine had the very same issue. We found the prompt only after disabling  Go Locker and rebooting

    This issue is also reported by other user on Google Play, but I never saw any explanation and solution. Maybe it was related to some specific settings I set, like: prevent pressing twice the home button to enter the “desktop”, … Or maybe because I did select Go Locker as default application to handle the Home button instead of Go Launcher ?

    Loading

  • Remote connection to Server 2012 Essentials

    I didn’t succeed to connect to my Server 2012 Essentials through Remote Desktop until I remembered me that this one was set up by default as a domain controller, one of the major differences between this server and WHS 2011.

    Click to Read More

    First, check that Remote Desktop is enabled on the server, just to be sure:

    1. On the Start Screen, type SystemPropertiesRemote and run that tool
    2. Allow remote connection to this computer.

    Next, I have disabled the Firewall, I don’t need to allow Remote Desktop Connection as an exception in this firewall.

    Finally, Windows Server 2012 Essentials being a domain controller, accounts created on that machine belongs to the domain defined at the end of the installation. So, the user name to be provided in Remote Desktop must be like <domain name>\<user name> instead of simply <user name> (equivalent to <remote machine name>\<account> as by default, Remote Desktop uses the target machine name as domain name).

    This subtle difference between Server 2012 Essentials and WHS 2011 (which was not a domain controller) could be a source of confusions while trying to connect for “end-users” used to work with workgroups instead of domains.

    Loading

  • Remote connection to Windows 8 with a Windows Live account

    I was trying to remotely connect from a Windows 7 to a Windows 8 where I was still logged with my Windows Live account. As I am still quite new to the use of Windows Live accounts, I was unsure about what to provide as credentials.

    For sure, to remotely connect on Windows 8 with a Windows Live account, it’s the related emails that must be typed in the Remote Desktop’s login prompt.

    Click to Read More

    I was hesitating because, although the account name is the Windows Live email, the “user” folder name is only the name part of this email.

    While checking which credentials to provide, I found by accident a way to get access to the logon screen of the remote machine, where the user currently logged appears => no need to remember the account name at all in this case :).

    1. I did run the command “mstsc -v:<machine name>
    2. I did use another account: “<machine name>\administrator” without password (I don’t know it anyway).
      • The Domain initially displayed was: MicrosoftAccount
    3. I did accept the certificate of the remote PC
    4. I was next presented with an error message: “The username or password is incorrect” on logon screen of the remote machine. I did click OK.
    5. I did click on “Switch user“, the left arrow on the top-left side.
    6. And finally, I did select my Windows Live Account displayed as currently logged…

    To connect directly with a Windows Live account:

    1. Run the command “mstsc -v:<machine name>
    2. Select Use another accountand type your Windows Live email as a user name.
      • The domain displayed will be the one of your email.
    3. Et voilà

    Notice: I was able to remotely connect to Windows 8 because the Firewall was off. Otherwise I would have had to enable Remote Desktop as an “allowed apps”.

    1. On the Start Screen, type “Firewall” and select Settings to find it.
    2. Run Windows Firewall.
    3. click Allow an app or feature through Windows Firewall.
    4. Click Change settings if enabled (You might be asked for an admin password or to confirm your choice).
    5. Under Allowed apps and features, select the check box next to Remote Desktop, and then use the check boxes in the columns to select the network types you want to allow communication on (should be private for your intranet).
    6. Et voilà.

    Loading

  • To switch or not to switch from Google to Outlook.com ?

    I was thinking about moving everything from my Google account (mails, calendar and contact) to my Windows Live account since I am using that account from Outlook 2013 on several personal computers to keep them in sync…

    After some investigation, I will only use the Calendar of my Windows Live account…

    Click to Read More

    Since a long time now, I am using two great tools (both free) to synchronize the Outlook Local Accounts of all my PC (at home and at work) with my Google Account (which was sync with my Galaxy S2):

    1. Google Sync: to sync my calendar both way
    2. Go Contact Sync mod: to sync my contacts both way

    Now, I am planning to use my Windows Live account account instead of my Google account as a central repository for my calendars and contacts: it’s actually the Windows Live Hotmail feature which is concerned; a.k.a. Outlook.com.

    For mails, I will continue to use my own mail server at Servage.net (with imap support). Actually, my main email address is a forwarded to my Gmail address, where the best free spam filter ever made available is applied. Next, the mails are forwarded back to a servage’s mail box that I access via imap from all my devices/PC.

    So… what should I do to use outlook.com instead of google on my PC and Galaxy S2 ?

    1. Install the Outlook.com sync feature on the Android device. First feedback:
      • It’s great for keeping your Android Calendar in sync with your Outlook.com calendar
      • It’s great for using your Outlook.com contacts from your Android.
      • But it’s really disappointing as contacts can’t be edited
      • And, about the synchronization of the emails, notice that it may only fetch emails from the last 30 days…
    2. Add Outlook.com as a new account in Outlook 2013
      1. Go to the menu File and click on the button Add Account in the Account Information pane.
      2. Select Manual setup or additional server types and click Next.
      3. Select Outlook.com or Exchange ActiveSync compatible service.
      4. Add your User information and Logon information, using the Mail Server: blu-m.hotmail.com
    3. Define Outlook.com account as the default account in Outlook 2013
      1. Go to the menu File and select the Exchange ActiveSync account (Outlook.com) in the Account Information pane.
      2. From the Account Settings drop-down menu select Account Settings…
      3. In the E-mail tab, select your Exchange ActiveSync account and click on Set as Default (Except if you want to send and receive your email with another account by default).
      4. In the Data Files tab, select your Exchange ActiveSync account and click on Set as Default (If you don’t do that, meetings will be created in the local account which is currently the default one).
    4. Export the calendar from Google
      1. Go to Google Calendar
      2. Expand the menu of My Calendars and select Parameters
      3. Click on Export Calendars. A download should start automatically.
      4. Unzip the file downloaded at step C.
    5. Import this google calendar in the Outlook.com account via Outlook 2013
      1. Open the Calendar view (via the bottom-left menu).
      2. Go to the menu File and select Open & Export.
      3. Click on Import/Export in the Open pane.
      4. Select Import an iCalendar (.ics) or vCalendar file (.vcs).
      5. Browse to open the file unzipped at step 4.D and containing the calendar exported from Google Calendar.
    6. Export the contacts from Gmail
      1. Go to Gmail
      2. From the top-left Gmail drop-down menu and select Contacts to open your Google address book.
      3. From the More actions drop-down menu, select Export…
      4. Select next the Outlook CSV format. A download should start automatically.
    7. Import those gmail contacts in Outlook.com (Outlook 2013 does not support to import contacts in the Oultook.com account)
      1. Go to Windows Live Hotmail.
      2. In the top-left drop-down menu Outlook, select People.
      3. Under “Add people to your contact list” select Import from a file.
      4. Click on Choose File and pick the file downloaded at step 6.D and containing the contacts exported from Google Calendar.
      5. Click Import Contacts.
      6. Force a Send/Receive in Outlook 2013 to sync the contacts newly added to the Outlook.com account.
    And now, check what’s working well and what’s not:
    1. Everything is ok with the calendar. I can edit/add/delete appointments from any device and the changes are synchronized on the others.
    2. Well, actually,
      1. Due to how MS handles the “all-day events”, those appears spanned across two days. To fix that, I had to edit all my “all-day events” and save them (without any change).
      2. MS is creating “Anniversary” events for all contacts with a birthday. As those events already exists (e.g.: created manually or automatically by MS Outlook), I had now plenty of duplicates that won’t be detected as one is named “XXX’s birthday” and the other “XXX’s Anniversary” 🙁
    3. I don’t see all my contacts in Outlook 2013.
      • This is a know bug in the Windows Sync feature. A fix is under investigation at MS (to be released in January 2013). As a workaround  you can edit the contacts and save the change. This will force a sync between Outlook.com and Outlook 2013.
      • But I can add new ones and edit existing ones from Outlook 2013 and the changes are synchronized on the devices.
    4. I can’t edit my contact from my Android device.
      • But I see those added through Outlook 2013.
    5. All notes in Contacts are now displayed with the HTML tags instead…
    6. Regarding the emails, I would not like this solution either as I want to be able to access all my emails and not only those of the the last 30 days.
    Linked Outlook.com with Gmail contact instead of importing:

    Instead of importing the contacts from Gmail into Outlook.com, you can link those contacts with your Outlook.com account. Doing so, they are in sync!

    1. Go to Windows Live Hotmail.
    2. In the top-left drop-down menu Outlook, select People.
    3. Under “Add people to your contact list”, in the right pane, select Google Contacts.
    4. Follow the connection wizard (Notice that the import is not immediate but done in background… Also when you change a Google Contact, the change will be not be synchronize immediately).
    Unfortunately, you won’t see the contact linked to Gmail in Outlook 2013 due to the same bug in Windows Sync mentioned above
    Also, you may not modify a Google Contact from Outlook.com (and therefore from Outlook 2013). However, you may add additional information to a Google Contact. This information will be kept in Outlook.com (Concretely a new contact with the same name is created in Outlook.com and linked with the Google Contact. This link can be cut via the menu “Links” appearing in Outlook.com when the contact is selected. For each information, Outlook.com display the origin: Outlook or Google). The new contact created in Outook.com will be sync with Outlook 2013 but it won’t contain any information from Google. You can modify this contact within 2013 and the changes will be synchronized back later with Outlook.com but obviously not with Google  – I was not able to force it or to refresh the contact in Outlook.com…
    So, for me – as far as I want a single repository accessible from not only my PC but also my mobile devices, this approach is pointless.

    How to delete all meetings from Outlook 2013 Calendar:

    If by accident you did import your meetings in the wrong calendar, here is how to select all the items and delete them.

    1. Go to the menu View.
    2. Click on Change View and select List.
    3. Select all the Items pressing Ctrl-A
    4. Press Delete
    How to select all contacts from Outlook.com:
    A really hard one as there is neither a Select-All menu nor a shortcut like Ctrl-A! And just like with Windows 8, it’s nowadays really difficult to guess how Microsoft has implemented some of the most simple operations with the keyboard.
    To Select All your Contacts in Outlook.com:
    1. Select the first contact with your mouse
    2. Press Shift + Page Down.
    Conclusions: 
    I think I hate hotmail (and MS) a little bit more now than before regarding the integration with mobile devices 🙂
    But ok… hotmail is Microsoft’s target mailing solution and I presume they will continue to work on the integration with outlook 2013 and the mobile devices…
    In addition, Googly Calendar Sync will be end of life in January 2013. The download link is already not available anymore…
    So, for now, I will only use the calendar of my Windows Live account. Doing so, I can already get rid of the Googly Sync tool from all my PC.
    But I will keep “Go Contact Sync Mod” tool to sync the contacts as there is really nothing else convenient offered by MS to share them between PCs and mobile devices 🙁 That being said, Go Contact Sync Mod 3.5.20 is really great, free and efficient with Outlook 2013 ! E.g.: In my case, I do sync the Google Contacts directly with my Outlook.com account in Outlook 2013…

    Loading

  • LSI SAS 9201-16i – Compatibility issues

    Now that I did solve the “conflict” between the Promise FasTrack and the nVidia RAID, I experience another conflict… with the new LSI SAS 9201-16i that I just plugged in the motherboard (an Asus Striker II Formula).

    Click to Read More

    With the default settings of the SLI, I get the following message (with exactly this spelling 😉 ) after the LSI initialization (which passes successfully),:

    Warning: Have Option ROM can not be invoke (Vendor ID:105Ah, Deivce ID:3701h).

    Here is the long story, full of twists and turns, and an Happy End 🙂

    Looking after 105A in the PCI database of vendors, I found that this vendor is “Promise “. So, for sure, the LSI adapter had issues to coexist on my motherboard where the Promise FastTrak TX4660 🙁

    Fortunately, this was only a warning and the disks connected on the FastTrak were available within Windows. The actual issue was that the configuration menu of the FastTrak was not accessible anymore at boot time (And therefore, it was impossible to modify the disk array, …) 🙁

    A workaround would have been to disable the “Boot Support” in the LSI configuration (the problem only occurs with option “Boot Support” = “Bios Only” or “OS and Bios” in the LSI configuration utility). And this would have been a valid solution for me as I don’t intend to boot ever on any disk connected to this controller. Another option would have been to temporary unplug the LSI to get access to the configuration menu of the Promise adapter at boot time.

    However, to solve this annoying issue, I did try to update the bios of the LSI from its current version (7.5.0.0) to the latest version 7.29.0.0 (The firmware being already the last one: 15.0.0.0). To dos so, I did download the package “9201_16i_Package_P15_IT_Firmware_BIOS_for_MSDOS_Windows” from SLI’s Find Support webpage.

    I did next start a command prompt with the option “Run As Administrator” (If you don’t Run it as Administrator, the bios updater won’t find the adapter!) and did execute: sas2flash.exe -o -f 9201-16i_it.bin -b mptsas2.rom

    The command (.exe) comes from the subfolder \sas2flash_win_x64_rel, the firmware (.bin) comes from the subfolder \Firmware\HBA_9201_16i_IT and the bios (.rom) comes from the subfolder \sas2flash_dos_rel. I did copy everything in a single folder.

    The option -o is to run in advanced mode, which is actually not mandatory to update firmware and bios of native LSI adpaters.

    But the situation went then really worst. The LSI bios was executing fine, i.e. without warning anymore. But next, nothing else was happening. I could see on my LCD Poster that the PC was trying to load the Boot menu (or enter the setup if I did press DEL), but it was never completing that step ?! I did try to disable the sata controllers on the motherboard and remove the FastTrak controller. Nothing helped (I had to remove the LSI adapter to be able to reach the setup menu).

    Fortunately, I found that I could still boot correctly with the LSI adapter on my other PC, build on top of an Asus P9X79Pro (with UEFI support!). So, I did start to look how to downgrade the bios on that PC…

    Unfortunately², impossible to find the old version 7.5.0.0 of the bios on SLI’s website. I only found a version 7.21.0.0 of the bios on Lime-Tech, a great forum about among others “unRaid systems” (The bios can be found in the package “LSI SAS2116 chipset”). I did the downgrade but that didn’t solve the problem. It was a bit different however as the LCD poster told me that the boot sequence was stick on “Bios Init” instead of “Boot Menu”… (which was worst IMO).

    Notice that I was only able to downgrade the Bios. The firmware might not be downgraded. Trying to do so resulted in a message : ERROR: Cannot downgrade NVDATA version 0xf000003 to 0xa030001.

    I though that the problem with the boot could be due to the update operation being not 100% correctly executed from within Windows, although it seemed to go well. So I did try to flash from a bootable usb key. But is Dos mode, on the Asus P9X79Pro, I get the error ‘Failed to initialize PAL ….’. According to LSI, this meant that the update procedure won’t work using that motherboard 🙁

    So, I did next try to flash the SLI’s bios using the UEFI Shell supported by my Asus P9X79Pro…

    1. First, I did download the package “UEFI_BSD_P15” from SLI web site
    2. Next, I did copy on my USB key the files x64sas2.efi and x64sas2.rom located in the package’s subfolder \UEFI_BSD_P15\uefi_bsd_rel
    3. Then, I did found the UEFI Shell (2 versions) from here:
      1. x86_64 UEFI Shell 2.0
      2. x86_64 UEFI Shell 1.0
    4. I did rename the Shell 2.0 (to be tried first) into shellx64.efi and copied it into the root folder of my USB key.
    5. I did also print the EFI shell user guide.
    6. I did plug the SLI adapter and the USB key into my Asus P9X79Pro.
    7. During the boot, I entered the Bios Setup of the ASUS, in Advanced mode.
    8. In the “Exit” menu (In the top-right corner), I did select “Launch UEFI Shell from filesytem device.
    9. From the start screen of the shell, I took note of the name of the USB device which was displayed automatically (otherwise I would have had to type the command ‘map’). The name was “FS0”.
    10. I did move to that device (without the need to mount it! It appeared to already be mounted! Otherwise I would have had to type ‘mount FS0:’) and I tried execute the flash:
      1. FSO:
      2. x64sas2.efi -o -b x64sas2.rom

    And…. I didn’t succeed to execute the flash command 🙁 I still need to dig how to use UEFI… E.g.: Instructions found in LSI’s ReadMe to flash from UEFI shell tell however to execute:

      1. drivers
      2. Take not of the drive number <dh>
      3. unload <dh>
      4. sas2flash -c <n> -b x64sas2.rom   where <n> is the #of the controller (0 if only one). Notice that the command I found on SLI web site was named x64sas2.efi instead of sas2flash.efi

    As the list of drivers is far too long, I had to capture it and enter the EFI editor to read it:

        1. drivers > list.txt
        2. edit list.txt
        3. To exit the EFI editor press the “F3” key (or type “Esc 3” depending on your system.

    Unfortunatelly++, after several tries to flash from the UEFI shell, I decided to give up and try something else as I was clearly not able to execute the updater from the shell (But for sure, I will come back into that UEFI shell to learn how to use it correctly).

    I read that many people did recommend to clean the firmware and the bios before upgrading. This can be done with the command: sas2flash -o -e 6. Unfortunately, this operation is not supported in Windows mode and must be executed in Dos mode, which is not possible for me on the Asus P9X79Pro as mentioned above (error ‘Failed to initialize PAL). What a nightmare!

    In the mean time, I had sent an email to LSI to get a copy of the bios 7.5.0.0. I had to wait more that 24h but then started a really good exchange with one of their technicians. The guy told me that this version was so old that it was not available anymore. The oldest version available was 7.15.0.0, but he suggested to investigate internally to see if someone would still have a copy. On my request, he did send me the version 7.15.0.0 for a try…

    A miracle! That version solves both the boot issue when the LSI is plugged on my Asus Striker II Formula and the warning message when the Promise is plugged too.

    And icing on the cake, 3TB disks are well supported and I can boot from disks connected on the LSI adapter (although that’s not at all my purpose – reason why I will disable Boot Support on this adapter).

    [EDIT]: In a next post, I report on re-using this experience to make another LSI, a SAS 9211-8i, compatible with my ASUS Striker II Formula too.

    Loading

    ,